【论文阅读笔记】CNN-Transformer for Microseismic Signal Classification

news2024/9/21 18:41:05

【论文阅读笔记】CNN-Transformer for Microseismic Signal Classification

摘要

 这篇论文提出了一种名为CCViT的轻量级网络模型,用于快速准确地识别地下传感器采集的煤矿和岩石裂缝的微震信号中由煤矿爆破产生的大量爆破振动信号。这些微震信号与爆破振动信号的波形高度相似。为了解决这一问题,作者采用了一个结合了卷积神经网络(CNN)和Transformer的网络模型。其中,CNN用于局部提取浅层特征,而Transformer用于全局提取深层特征。此外,作者还引入了一个修改后的通道注意模块,为模型提供重要的通道信息,并抑制无用信息。实验证明,在本文使用的数据集上,所提出的CCViT模型在浮点运算量(FLOPs)、参数数量和准确度方面相比许多先进的网络模型具有显著优势。

1. Introduction

  • 背景:微震监测技术在近年来成为煤矿监测动态灾害的有效手段,能够实时监测煤矿中煤岩石裂缝的微震活动并记录监测数据。

  • 环境复杂性:煤矿环境复杂,传感器采集的信号受到各种干扰,包括爆破振动和噪音。特别是,煤岩石裂缝的微震信号与爆破振动信号具有非常相似的波形,难以在微震监测系统中区分它们。

  • 问题影响:这一问题影响了对煤岩石裂缝微震活动的监测,进而影响了对灾害预警的准确性和及时性。导致煤矿开采效率低下,难以确保工人的安全。

  • 解决方案需求:因此,迫切需要快速准确地从大量监测数据中识别煤岩石裂缝的微震信号。

  • 实际问题:在实际工程中,有效微震信号的获取主要依靠手动识别,工程师的经验是主要的识别依据,这使得识别困难且效率低下。

  • 常用方法: 用于识别煤岩石裂缝微震信号的常见方法包括时间序列分析、机器学习和深度学习。传统的时间序列分析方法包括参数识别和时频分析。

  • 参数识别方法: 通过从待识别的时间序列数据中选择一个或多个特征参数,参数识别方法在时域分析中分类不同类型的信号。Ma等人利用源和波形参数作为特征向量来识别微震和爆破信号。Zhao等人利用微震波形重复、唤醒下降、主频和发生时间作为特征参数来识别信号。

  • 时频分析方法: 该方法通过变换信号序列以获取频域或与能量相关的特征参数来识别信号。Lu等人使用傅里叶变换来分析不同类型微震信号的功率谱和振幅频率特性,为矿井中不同类型微震信号的初步识别提供基础。小波分析和小波包分析融合微震信号的时频域信息,以增强微震信号的区分度。

  • 经验模态分解(EMD)和变分模态分解(VMD): EMD将原始信号分解成不同频带,以更好地处理随机非平滑信号。VMD是一种非递归信号分解方法,能够自适应高效地分离信号的频域部分及其组成部分。

  • VMD分析技术: Zhang等人利用VMD分析技术研究了煤岩石裂缝微震波形和爆破振动波形在每个模态分量中的能量分布特征和能量重心。然后,能量分布的重心系数被用作特征,用于分类和识别这两种类型的信号。

  • 方法局限性: 这些方法依赖于研究人员和工程师的经验,通过手动提取信号特征和根据特征参数手动识别微震信号。尽管取得了一些成功,但它们仍然存在一些缺陷,其效率仍需进一步提高。

传统机器学习方法: 传统机器学习方法首先通过常规时间序列分析获取一些特征参数作为输入,然后利用机器学习算法进行微震信号识别。

支持向量机(SVM)方法: Zhu等人构建了一个支持向量机(SVM)网络模型,利用频带的分形盒计数维度作为信号特征,用于爆破、电磁和微震信号的分类。Shang等人利用EMD和奇异值分解(SVD)技术提取矿山信号特征,并应用SVM在沙坝矿山区分微震和爆破信号。

局部均值分解(LMD)和模式识别方法: Li基于局部均值分解(LMD)和模式识别方法对微震和爆破信号进行分类。

高斯混合隐马尔可夫模型(GMM-HMM): Peng等人基于梅尔频率倒谱系数(MFCC)开发了一个基于高斯混合隐马尔可夫模型(GMM-HMM)的模型。

VMD和多尺度奇异谱熵结合支持向量机: Zhang等人结合VMD和多尺度奇异谱熵构建信号的特征向量,并使用支持向量机识别微震信号。

方法局限性: 这些方法需要预先提取相关的特征参数,未充分利用原始数据信息,可能错过一些重要信息,在处理大量波形信号的识别时效率较低。
  • 深度学习方法: 深度学习方法通过构建网络框架自动从输入数据中提取特征,并基于提取的特征对信号进行分类。

  • 卷积神经网络(CNN): Peng等人提前从信号中提取特征,构建特征矩阵,然后使用CNN进行分类。然而,这种方法仍依赖于研究学者的经验,无法从原始数据中自动提取特征。

  • 短时傅里叶变换与卷积神经网络结合: Ma等人利用卷积神经网络从短时傅里叶变换获得的时频图中自动提取时间和频域特征,以识别微震信号。设计的网络在相应的数据集上表现良好。然而,由于网络结构相对简单,对包含大量具有高度相似波形的信号的复杂数据集的性能有限。

  • ResNet: ResNet提出了一种残差结构,缓解了由于网络深度增加而引起的梯度消失和梯度爆炸问题。它通过增加网络层数来使卷积神经网络获得更好的性能。先前的研究选择构建更深的卷积神经网络以提高模型的鲁棒性,但相应的模型参数数量大幅增加。此外,训练需要大规模数据集,模型的训练难度和训练时间也大大增加。

  • 这篇论文的主要目标是设计一个统一的轻量级分类框架,利用卷积神经网络(CNN)和Transformer,同时构建了一个通道注意结构,以实现对微震信号的快速准确识别。论文的主要贡献如下:

  • 统一轻量级分类框架: 论文设计了一个包含CNN和Transformer的统一轻量级分类框架。该模型的浮点运算量(FLOPs)比MobileViT [20]少67%。该框架从空间、通道、局部和全局视角提取特征,仅使用少量参数即可获取丰富的特征信息,以实现对信号的快速准确分类。

  • 通道注意结构: 论文构建了一个通道注意结构,以捕捉通道间的重要信息。该模块是即插即用的,使用少量参数增强了分类框架的特征提取能力。

2. Related Work

 考虑到微震信号识别任务对速度和性能的要求,构建轻量级网络模型更为合适。自Chollet [21]提出深度可分离卷积以提高卷积层的计算效率以来,许多研究人员已将其应用于构建轻量级CNN网络,如MobileNetv1 [22]、MobileNetV2 [23]、MobileNetv3 [24]和ShuffleNet系列模型 [25]。尽管这些轻量级网络易于训练,但CNN的实际感知领域不能覆盖整个情境。当用于微震信号识别时,很难准确捕捉特征。Transformer [26]模型放弃了传统的CNN结构,以自注意方式捕捉全局上下文信息,对各个领域产生影响。Vision transformer (ViT) [27]首次将标准transformer结构应用于图像,但对预训练权重有很高的依赖性。此外,transformer结构缺乏CNN独特的归纳偏差,使学习变得困难,通常需要大规模数据集以获得更好的训练结果。本文借鉴了MobileViT [20]的思想,将CNN和transformer结合起来。CNN为transformer提供了空间归纳偏差信息,提高了transformer的稳定性和性能,并大幅减少了模型的参数数量。Transformer以全局视角捕捉信号特征,弥补了CNN的不足。

 注意力机制的本质是聚焦于重要信息并抑制无用信息。Jaderberg等人 [28]提出了一种空间注意机制,用于定位人们感兴趣的目标并进行转换或获取其权重。SENet [29]关注通道维度,提出了一种通道注意机制,增强或抑制各种通道信息。CBAM [30]提出了一种混合的空间和通道注意机制,同时关注空间和通道信息。CA [31]在SENet的基础上增加了高度和宽度的位置信息,以获取两个方向的特征信息。然而,上述提到的所有注意机制并不适用于微震信号分类任务,反而可能降低模型性能。这些注意机制提取的通道权重过于概括,无法聚焦于特定的特征。

 本文的重点是设计轻量级模型,为此设计了CCViT模型。该模型融合了CNN、Transformer和通道注意的优势,确保模型能够准确捕捉微震信号分类和识别任务所需的特征信息,同时有效降低了整体计算开销。该模型更轻量级,使用的参数较少,所需的浮点运算量(FLOPs)也较其他轻量级模型更少。该模型性能更好,在微震信号分类识别任务中表现优于其他模型。

3. Method

 为了满足微震信号识别任务对速度和性能的要求,本文采用了CNN和transformer的组合来构建一个轻量级网络模型。CCViT模型的整体结构如图1所示,其中k代表卷积核大小,s代表步幅,n代表transformer堆叠块的数量。模型包含四个阶段,每个阶段首先使用池化层进行下采样。模型的前两个阶段使用CNN提取局部浅层特征,被命名为CSAConv模块。模型的后两个阶段使用transformer作为特征提取器,全局提取深层特征,被命名为CSAConvViT模块。最后,使用分类器进行分类。为了实现模型的轻量化,本文选择构建一个浅而窄的网络模型。设置每个阶段中堆叠的块数为2、2、1和1;将模型的重点放在第三阶段;设置第三和第四阶段模块中transformer堆叠块数n分别为5和3。设置每个阶段的通道数为16、24、48和64。CCViT模型的具体内部参数如表1所示。

 CSAConv模块以深度可分离卷积为主体,每个卷积核只处理一个通道,从而显著降低了计算复杂性。CSAConv模块的结构如图2所示,其中H、W和C分别表示张量的高度、宽度和通道;k表示卷积核大小;s表示步幅。输入特征图INc首先通过CSA模块,获取重要的通道信息,得到特征图Gc。该模块进行深度卷积[32],只在空间维度上混合信息。第i个特征图的计算如下:

 其中,∗ 表示卷积操作。输出特征图V的第i通道是从特征图G的第i通道通过第i卷积核计算得到的。卷积核的大小k值由实验讨论确定。然后,两个卷积变换函数通过先增加通道维度,然后减小通道维度,集成更高维度的信息。它们为模型提取了更丰富的高级特征。最后,通过快捷分支将特征图添加到输入特征图中,得到输出特征图。方程如下

在这里插入图片描述

 CSAConvViT模块使用ViT编码器作为特征提取器,以注意机制的方式捕捉全局信息。这解决了CNN无法充分利用上下文信息的问题。CSAConvViT模块的结构如图3所示,其中H、W和C分别表示张量的高度、宽度和通道;k表示卷积核大小;s表示步幅;n表示transformer编码器堆叠块的数量。输入特征图INc首先通过CSA模块获取感兴趣通道的信息,得到特征图Gc。模块首先使用卷积局部化提取特征,特征图包含CNN独特的归纳偏差信息。方程如下:

在这里插入图片描述

 注意机制的基本原理借鉴了人类在接收信息时关注重要和有趣部分的现象。通过为不同的特征部分分配不同的权重,注意机制使模型关注输入特征中相对更重要的部分。为了准确捕捉模型所需的通道间信息,本文提出了一种新的通道注意机制,命名为CSA。CSA模块的结构图如图4所示,其中H、W和C分别表示张量的高度、宽度和通道;k表示卷积核大小;s表示步幅;r表示缩放倍数。CSA模块分别聚合了输入特征图INc中在高度和宽度方向上的特征,得到一对具有位置信息的特征图,有助于网络更准确地定位感兴趣的目标。方程如下:

在这里插入图片描述

 为解决神经网络训练难的问题,通常会向神经网络添加归一化层,以增加模型的适应能力。在卷积神经网络中,最流行的组件之一是批归一化(Batch Normalization,BN)[33],它对单个批次进行归一化,通过减少过拟合来提高网络的收敛性。然而,BN具有可能影响模型性能的缺点[34]。另一方面,层归一化(Layer Normalization,LN)[35]是一种一次性对所有批次进行归一化的方法,具有更直观的架构,使其成为自然语言处理领域的首选选择。LN的原理如下:

 随着网络的发展,出现了各种各样的激活函数。Sigmoid及其组合函数[36]通常用于分类器,但在其他方面表现一般。深度卷积神经网络的隐藏层通常使用修正线性单元(Rectified Linear Unit,ReLU)函数[37],以避免梯度饱和,并加速随机梯度下降法的收敛速度。然而,ReLU存在一个严重的缺点,即一旦输入值小于0,该神经元的一部分将进入“死区”并无法被激活。在自然语言处理领域,大多数模型使用高斯误差线性单元(Gaussian Error Linear Unit,GeLU)函数[38],因为它与随机正则化有关,提高了神经元的输出概率。此外,使用GeLU函数的模型在图像分类领域的性能与ReLU函数相媲美。强化学习提出了一种新的激活函数:SiLU函数[39]。SiLU函数是Sigmoid函数的加权线性组合。SiLU函数的原理如下:

 SiLU函数是一种显著的自稳定隐式正则化器,可以成功抑制大量权重的学习,防止网络过拟合。YOLOv7 [40]模型采用了SiLU激活函数并取得了优越的结果。在本研究中,SiLU函数被用作CCViT模型的激活函数。该模型使用较少的激活函数,每个CSAConv模块和CSAConvViT模块中仅使用一个SiLU激活函数,从而使CCViT模型表现更好。

Data Pre-Processing Process

 为了提高模型的鲁棒性并降低对噪声的敏感性,本文使用真实的监测数据对模型进行训练。本文使用的数据来自山东省的一个煤矿工作面,平均煤层厚度为7.03米。该煤层直线而稳定,主要采用重型机械化和高效采矿方法。矿井的水文地质类型复杂,是一座冲击震爆煤矿。采用的是冲击式综采工作面采煤方法,开采过程中采用综掘和大炮综掘,因此在采煤过程中会产生大量微震事件和爆破事件。为了获得准确的爆破和微震事件,矿井进行了爆破追踪记录。记录的爆破波形经过P波和S波的时间校准,并定位到爆破源。然后,将其与记录的爆破时间和爆破位置进行比较,可以确认波形是否为当前记录的爆破作业的信号。从而可以获得一个确定的爆破事件数据库。目前,在矿区完全准确地识别微震事件的方法尚不存在。本文首先排除背景噪声和无用数据,排除爆破时间内的事件,最终分析微震事件的波形特征,以建立一个经过验证的微震事件数据库。

 数据集中的长度和幅值被统一。数据长度都是1344个样本,并进行了归一化,将它们压缩到范围[-1,1]内。假设煤岩破裂微震信号或爆破振动信号为x(t),其中t = 1, 2, · · · , 1344。根据以下方程计算信号的绝对最大特征值:

在这里插入图片描述

 横轴时间 纵轴频率 颜色幅度 颜色越黄 振幅雨打 颜色越蓝 振幅越小

4. Experiments

4.1. Parameter Settings

 为了研究CCViT模型在区分微震信号方面的有效性,本文将数据集按6:2:2的比例划分为训练集、验证集和测试集。即使用2400个数据进行模型训练,使用800个数据进行调优,使用800个数据进行评估。CCViT模型从零开始进行了800个epoch的训练,仅使用了随机裁剪和水平翻转等最基本的数据增强策略。批大小为8。使用AdamW优化器[41]更新网络权重。初始学习率为0.0002,L2权重衰减为0.01。采用带有标签平滑的交叉熵损失函数,平滑率为0.1。本文使用FLOPs、参数数量和准确度对模型进行评估。FLOPs代表浮点运算次数,用于衡量模型的复杂性。当模型进行前向传播时,执行卷积、池化、层归一化和激活函数等操作时,会产生相应的计算功耗。参数数量用于描述模型的大小,换句话说,描述模型所需内存,独立于输入特征的大小。模型的FLOPs和参数数量是通过使用Python开源库中的函数进行计算的。准确度用于评估模型在测试集上的分类效果。为了更准确地评估模型的性能,本文对模型进行了五次训练,将五次结果的平均值作为最终结果。

 本文研究了Transformer编码器叠加块数量对模型性能的影响,以调整模型。通过比较实验设置了不同数量的Transformer编码器叠加块,实验结果如表2所示。当Transformer编码器的叠加块数量设置为5、3时,模型性能最佳。当增加第三或第四阶段的叠加块数量时,模型的FLOPs和参数的增长范围大致相同,但在增加第三阶段的叠加块数量时,模型相对稳定。因此,模型的关注点集中在第三阶段,适度增加第三阶段的叠加块数量有助于提高CCViT模型的性能。

 选择合适的卷积核大小有助于提高模型的性能。为了研究不同卷积核大小对CCViT模型性能的影响,本文通过反复实验选择了适合CCViT模型的卷积核大小。首先,剩余卷积核大小默认为3。深度卷积核的大小在比较实验中设置为不同的值。在选择适当的深度卷积核大小后,通过比较实验选择了卷积层后两个阶段的适当卷积核大小。实验结果如表3所示。从表3可以看出,随着卷积核大小的增加,CCViT模型的计算量增加,性能下降。选择3 × 3卷积核时,CCViT模型表现最佳。结论是,对于微震信号分类和识别任务,CCViT模型的较大卷积核不一定更好。在CCViT模型中使用小的卷积核有助于提取微震信号的特征

CSA模块的放置位置影响CCViT模型的性能。为了评估CSA模块位置对模型的影响,本文进行了一系列实验,探讨了以下几种情况:

插入到每个阶段的模块的顶部,如图8a所示;
插入到每个阶段的模块的中部,如图8b所示;
插入到每个阶段的模块的底部,如图8c所示。
实验结果如表4所示。结果表明,当CSA模块放置在每个阶段的顶部时,模型的性能最佳。模型优先使用CSA模块来提取重要的通道信息,有助于捕捉相关的特征。

在这里插入图片描述

4.4. Comparison Experiments

 为了评估CCViT模型的有效性,本文选择了在微震信号分类领域中也被使用的TFMC模型[16],以及在参数数量、FLOPs和准确性等方面较重的网络(ResNet、Vision Transformer和ConvNext)和轻量级网络(MobileNetv2、MobileViT)进行比较实验。实验结果如表6所示。在由真实监测数据组成的数据集上,本文提出的模型在准确性上优于其他深度学习方法,准确率达到96.18%。与其他方法相比,本文提出的方法具有低计算功耗和高准确性的优势。与重型模型相比,CCViT模型使用较少的参数取得了更好的性能。例如,本文提出的CCViT模型的参数数量和FLOPs仅为ConvNext的2%。这表明使用多个视角提取特征使模型更容易捕捉特征,有助于信号的识别。与轻量级模型相比,本文提出的CCViT模型使用更少的参数,具有更少的FLOPs,并且更容易训练。例如,本文提出的CCViT模型的参数数量为MobileViT的60%,FLOPs为MobileViT的33%。TFMC模型在我们的数据集上表现不佳,准确率仅为68.25%。其参数数量和FLOPs要比本文提出的CCViT模型大得多。这证实了简单的卷积模型很难区分微震和爆破信号。比较实验表明,CCViT模型更适用于微震信号识别任务,具有高的分类效率和更好的性能。

5. Conclusions

 这篇论文介绍了CCViT模型,一种轻量级方法,可准确区分煤岩破裂微震信号和爆破振动信号。该模型结合了卷积神经网络(CNN)和transformer,以从多个角度捕获特征,降低参数和计算量,同时保持性能。所提出的通道注意机制CSA增强了通道间的重要特征。实验结果表明,CCViT模型在减少FLOPs的同时保持卓越性能,实现了快速的微震信号识别。CCViT模型对噪声具有鲁棒性,同时提取时域和频域特征。其在煤矿安全微震监测中的应用前景广泛。未来的工作可能会探索多通道数据集成以提高微震事件识别的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1238129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙原生应用/元服务开发-AGC分发如何配置版本信息(下)

12.根据《工业和信息化部关于开展移动互联网应用程序备案工作的通知》,自2023年9月初起,在中国大陆地区提供互联网信息服务的APP开发者,需要依法履行APP备案手续,并通过APP分发平台的备案信息核验。 对于2023年9月7日后在AGC新上…

window文件夹下python脚本实现批量删除无法预览的图片

你是否遇到过下载的图片会发现有些图片会无法预览情况? 有几种原因可能导致一些图片在预览时无法正常显示: 损坏的图片文件: 图片文件可能损坏或者部分损坏,导致无法被正常解析和预览。这种情况可能是因为文件在传输过程中损坏、…

Request 爬虫的 SSL 连接问题深度解析

SSL 连接简介 SSL(Secure Sockets Layer)是一种用于确保网络通信安全性的加密协议,广泛应用于互联网上的数据传输。在数据爬取过程中,爬虫需要与使用 HTTPS 协议的网站进行通信,这就牵涉到了 SSL 连接。本文将深入研究…

这是一棵适合搜索二叉树

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻强烈推荐优质专栏: 🍔🍟🌯C的世界(持续更新中) 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔…

内容输入.type

内容输入.type 查看完整说明 语法 .type(text) .type(text, options)正确用法 cy.get(input).type(Hello, World) // Type Hello, World into the input错误用法 cy.type(Welcome) // Errors, cannot be chained off cy cy.clock().type(www.cypress.io) // Errors, clock…

新手做抖店,这6点建议一定要收好,能让你不亏钱!

我是电商珠珠 我呢,目前身居郑州。 电商这个行业也做了5年多了,抖店从20年开始做,到现在也已经快3年了。 其实,我做抖店期间呢,踩过很多坑,所以今天就把我所踩过的坑,给做抖店的新手总结了6点…

Latex数学符号查表

摘抄自“《一份(不太)简短的 LATEX 2ε 介绍》”,来自该网站http://mirrors.cqu.edu.cn/CTAN/info/lshort/chinese/lshort-zh-cn.pdf

VR全景航拍要注意什么,航拍图片如何处理

引言: VR全景航拍技术是当前摄影和航拍领域的新潮流。它采用虚拟现实技术,通过360度全景镜头捕捉画面,可以为观众提供身临其境的视觉体验。在宣传展示中,利用VR全景航拍技术可以为品牌宣传带来更加生动、震撼的视觉效果。 一、航拍注意事项 …

浅谈建筑能耗智能监测平台发展现状及未来趋势

安科瑞 华楠 摘要:文章以每年发布的上海市国家机关办公建筑和大型公共建筑能耗监测及分析报告变化为切入点,分析了历年能耗分析报告的内容和功能变化;介绍了上海市国家机关办公建筑和大型公共建筑能耗监测平台发展和应用历程;揭示…

在 VSCode 中使用 GDB 进行 C/C++ 程序调试(图文版)

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…

steam游戏找不到steam_api64.dll,分享三个有效的解决方法

在现代科技发展的时代,游戏已经成为了许多人生活中不可或缺的一部分。而Steam作为全球最大的数字发行平台之一,拥有着庞大的游戏库和活跃的用户群体。然而,在使用Steam时,有些用户可能会遇到Steam_api64.dll丢失的问题&#xff0c…

一般人用 Linux 算是找虐吗?

一般人用 Linux 算是找虐吗? 主要得看用什么Linux,毕竟Android也算是Linux,满大街一般人整天在用,也没什么人觉得自己在找虐。 最近很多小伙伴找我,说想要一些Linux的资料,然后我根据自己从业十年经验&…

实现点击一个选框 使得一个组件的可选性修改

实现效果 代码 html <div class"divrow"><el-checkbox-group v-model"isSendTag" :max"1"><el-checkbox v-for"(item, index) in isSendTagOptions" :key"index" :label"item.value">{{item.…

实时数据备份实践inotify和rsync联动

目录 一、实时数据备份 1.实时数据备份 2.定时任务周期性的数据备份 3.实时数据备份 4.Inotify机制 二、实践 1.实时复制环境准备 2.实时复制概念 3.InofityRsync实施复制实战 4.配置好rsync守护进程 5.检查linux是否支持inotify 6.安装inotyify--tools 7.inotify…

黑马React: Redux

黑马React: Redux Date: November 19, 2023 Sum: Redux基础、Redux工具、调试、美团案例 Redux介绍 Redux 是React最常用的集中状态管理工具&#xff0c;类似于Vue中的Pinia&#xff08;Vuex&#xff09;&#xff0c;可以独立于框架运行 作用&#xff1a;通过集中管理的方式管…

nodejs搭建本地服务

前端开发时想自己有个本地服务如下操作直接上干货 1.在桌面上直接在powerShell 输入命令行 npm install -g express-generator 然后 npm install -g express 然后新建一个例如server的文件夹 在powerShell执行 express myStudy -e 端口号默认是3000 直接在地址栏输入 http://…

京东数据分析平台(京东运营数据采集):2023年10月京东白酒品牌销售排行榜

鲸参谋监测的京东平台10月份白酒市场销售数据已出炉&#xff01; 鲸参谋数据显示&#xff0c;10月份&#xff0c;京东平台上白酒的销量为340万&#xff0c;环比增长约16%&#xff0c;同比增长约37%&#xff1b;销售额为28亿&#xff0c;环比增长约20%&#xff0c;同比增长约122…

【STM32外设系列】JW01三合一空气质量检测模块

&#x1f380; 文章作者&#xff1a;二土电子 &#x1f338; 关注公众号获取更多资料&#xff01; &#x1f438; 期待大家一起学习交流&#xff01; 文章目录 一、JW01模块简介二、数据格式介绍三、程序设计3.1 串口初始化3.2 串口接收中断服务函数3.3 数据解析函数 四、其他…

全面的日志监控管理工具

企业网络由众多日志源组成。集中监控这些日志源有助于防止数据威胁和网络攻击&#xff0c;综合日志监控解决方案可以自动执行日志管理流程&#xff0c;通过关联日志来识别恶意活动&#xff0c;并帮助满足IT合规性要求。 不同类型的日志监控 EventLog Analyzer 综合日志监控解…

Mysql数据库 17.Mysql存储引擎

Mysql体系结构分为4层&#xff1a; 1.连接层 最上层是一些客户端和连接服务&#xff0c;包括大多数基于客户端/服务端工具实现的类似于TCP/IP的通信&#xff0c;主要功能是完成一些类似于连接处理、授权认证、安全方案等&#xff0c;在该层上还引入线程池的概念&#xff0c;为…