【MMIN】缺失模态想象网络用于不确定缺失模态的情绪识别

代码地址:https://github.com/AIM3RUC/MMIN

abstract:

在以往的研究中,多模态融合已被证明可以提高情绪识别的性能。然而,在实际应用中,我们经常会遇到模态丢失的问题,而哪些模态会丢失是不确定的。这使得固定多模态融合在这种情况下失效。在这项工作中,我们提出了一个统一的模型,缺失情态想象网络(MMIN),以处理不确定的缺失情态问题。MMIN学习鲁棒联合多模态表示,在给定可用模态的情况下,可以预测任意缺失模态在不同缺失模态条件下的表示。

在两个基准数据集上的综合实验表明,统一的MMIN模型在不确定缺失模态测试条件和全模态理想测试条件下都显著提高了情绪识别性能。代码可在https://github.com/AIM3RUC/MMIN上获得。

intro:

自动多模态情感识别对于自然人机交互非常重要(Fragopanagos and Taylor, 2002)。它旨在理解和解释通过多种方式表达的人类情感,如语音内容、语音语调和面部表情。先前的研究表明,这些不同的模态对情绪表达是互补的,并提出了许多有效的多模态融合方法来提高情绪识别性能(Baltrusaitis等人,2018;Tsai et al ., 2019;Zhao et al ., 2018)。然而,在实际的应用程序中,许多常见的原因可能导致缺少模态问题。例如,相机关闭或因隐私问题被屏蔽;自动语音识别错误导致语音内容不可用;由于用户的沉默,语音和文字缺失;或者由于光照或遮挡问题而无法检测到人脸,如图1所示。在全模态样本上训练的现有多模态融合模型通常在缺少部分模态时失败(Aguilar等人,2019;Pham等人,2019;Cai et al, 2018;Parthasarathy and Sundaram, 2020)。

问题情态缺失是近年来研究较多的问题,现有的解决方法主要是基于学习联合多模态表示,实现所有情态信息的编码。Han等人(Han et al ., 2019)提出了一种联合训练方法,该方法隐式融合了来自辅助模态的多模态信息,从而提高了单模态情感识别性能。最近在(Pham et al ., 2019;Wang et al ., 2020)通过将源模态转换为多个目标模态来学习联合多模态表示,从而提高了作为输入的源模态的性能

然而,这些方法只能处理源模态输入到训练模型的场景。需要为不同的缺失模态情况构建不同的模型1。此外,基于顺序翻译的模型需要翻译和生成视频、音频和文本,这些内容很难训练,特别是在训练样本有限的情况下(Li et al ., 2018;Pham et al, 2019)。

在这项工作中,我们提出了一个新的统一模型,缺失情态想象网络(MMIN),以解决上述问题。具体而言,本文提出的MMIN通过层叠残差自编码器(Cascade Residual Autoencoder, CRA) (Tran et al ., 2017)和基于句子级特定情态表征的循环一致性学习(Cycle Consistency Learning, Zhu et al ., 2017)的跨情态想象学习鲁棒联合多情态表征,因为句子级表征更合理地建模跨情态情感相关性。想象模块旨在从其他可用的情态中预测缺失情态的句子级情感表征。据我们所知,这是第一个研究具有不确定缺失情态的多模态情感识别的统一模型的工作。

在IEMOCAP和MSPIMPROV两个基准数据集上,在不确定失模态和全模态条件下进行了大量实验。该模型作为一种统一的多模态情感识别模型,能够学习到鲁棒的联合多模态表示,在不确定缺模态和全模态条件下均优于标准多模态融合模型。此外,为了评估我们的MMIN模型的想象能力,我们可视化了缺失模态的想象表征及其基真表征的分布,发现它们非常相似,这表明MMIN可以基于可用模态的表征来想象缺失模态的表征

综上所述,本工作的主要贡献有:1)我们提出了一个统一的模型,缺失情态想象网络(MMIN),以提高不确定缺失情态测试下情感识别系统的鲁棒性con1如果有音频(a)、视觉(v)和文本(t)三种情态,那么系统需要6个在6种缺失情态条件下训练的模型fag、fvg、ftg、fa、vg、fa、tg和fv、tg,再加上一个在全情态数据下训练的模型。

条件。2)基于配对多模态数据设计跨模态想象,采用级联残差自编码器(CRA)和循环一致性学习学习鲁棒联合多模态表示。3)在两个基准数据集上的大量实验表明,该模型在不确定缺失模态和全模态条件下都提高了情感识别性能。

related work:

多模态情感识别以前的许多工作都集中在融合多模态信息以提高情感识别性能上。提出了基于时间注意的方法,利用注意机制根据框架级或词级时间序列选择性地融合不同的模态,如门控多模态单元(GMU) (Aguilar等,2019)、多模态对齐模型(MMAN) (Xu等,2019)和多模态注意机制(cLSTM-MMA) (Pan等,2020)。这些方法使用不同的单模态子网络对每个模态的上下文表征建模,然后使用多模态注意机制有选择地融合不同模态的表征。Liang等人(Liang et al, 2020)提出了一种半监督多模态(SSMM)情绪识别模型,该模型使用跨模态情绪分布匹配来利用未标记的数据来学习鲁棒表示并实现最先进的性能。

模态缺失问题现有的模态缺失问题的方法主要分为三类。第一组的特点是数据增强方法,该方法随机删除输入以模拟缺失模态情况(Parthasarathy和Sundaram, 2020)。第二组基于生成方法,在给定可用模式的情况下直接预测缺失模式(Li等人,2018;Cai et al, 2018;Suo等人,2019;Du et al, 2018)。第三组旨在学习可以包含这些模态相关信息的联合多模态表示(Aguilar等人,2019;Pham等人,2019;Han等人,2019;Wang et al ., 2020)。

数据增强方法:Parthasarathy等人(Parthasarathy和Sundaram, 2020)提出了一种策略,在活动期间随机删除视觉输入在片段或帧水平上模拟真实世界的缺失模态场景进行视听多模态情感识别,提高了缺失模态条件下的识别性能。

生成方法:Tran等人(Tran et al, 2017)提出级联残差自编码器(CRA),利用自编码器结构上的残差机制,可以获取损坏的数据并估计一个函数来很好地恢复不完整的数据。Cai等人(Cai et al, 2018)提出了一种编码器-解码器深度神经网络,在给定可用模态(磁共振成像,MRI)的情况下生成缺失模态(正电子发射断层扫描,PET),生成的PET可以提供补充信息,以提高对阿尔茨海默病的检测和跟踪。

学习联合多模态表示:Han等人(Han et al, 2019)提出了一种由两个特定模态编码器和一个共享分类器组成的联合训练模型,该模型将音频和视觉信息隐式融合为联合表示,提高了单模态情感识别的性能。Pham等人(Pham et al, 2019)提出了一种基于顺序翻译的模型来学习源模态和多个目标模态之间的联合表示。源模态编码器的隐向量作为联合表示,提高了源模态的情感识别性能。Wang等(Wang et al ., 2020)遵循这种基于翻译的方法,提出了一种更高效的基于转换器的翻译模型,将文本特征转换为声学特征,将文本特征转换为视觉特征。此外,上述两种基于翻译的模型采用了前向翻译和后向翻译的训练策略,以确保联合表示能最大限度地保留所有模态的信息。

method:

给一组视频片段S,我们用x = 表示视频s的原始的多模态特征,该视频片段s属于S,|S|表示视频片段的个数,我们的目标集Y,

其中yi是视频片段si目标情绪分类,|C|是情感类别的数量。

我们提出的方法旨在识别具有完整模态或仅具有部分模态的每个视频片段si的情感类别yi,例如图1所示的示例,当缺少视觉模态时,仅存在声学和文本模态

缺失模态想象网络:

为了学习鲁棒联合多模态表示,我们提出了一个统一的模型——缺失模态想象网络(MMIN),该模型可以处理实际应用场景中不同的不确定缺失模态条件。图2展示了我们提出的MMIN模型的框架,它包含三个主要模块:1)用于提取模态特定嵌入的模态编码器网络;2)基于级联残差自编码器(CRA)和循环一致性学习的想象模块,用于在给定相应可用模态表示的情况下想象缺失模态的表示。收集CRA中自编码器的潜在向量,形成联合多模态表示;3)基于联合多模态表示的情感分类器预测情感类别。我们将在以下小节中详细介绍每个模块。

Q:MMIN是怎么生成缺失模态的?和之前两篇一样随机生成吗?

A:不是,在MMIN模型中,模态缺失是通过模型的输入设置来确定的,而不是随机确定。对于每一个训练样本,根据预定义的缺失模态条件,输入向量中缺失的模态部分会被置为零向量。模型在训练时会学到在特定模态缺失的条件下如何处理其他可用的模态信息。


代码上解释一下这一步:

# A modality
self.A_miss_index = self.missing_index[:, 0].unsqueeze(1).unsqueeze(2)
self.A_miss = acoustic * self.A_miss_index
self.A_reverse = acoustic * -1 * (self.A_miss_index - 1)
# L modality
self.L_miss_index = self.missing_index[:, 2].unsqueeze(1).unsqueeze(2)
self.L_miss = lexical * self.L_miss_index
self.L_reverse = lexical * -1 * (self.L_miss_index - 1)
# V modality
self.V_miss_index = self.missing_index[:, 1].unsqueeze(1).unsqueeze(2)
self.V_miss = visual * self.V_miss_index
self.V_reverse = visual * -1 * (self.V_miss_index - 1)

首先设置输入,set_input函数首先将来自数据加载器的输入赋值到相应的变量中,并转换数据类型和设备位置(如GPU)

接着处理缺失模态,对于每个样本,代码检查他的missing_index,这是一个指示哪些模态缺失的索引数组。使用missing_index为每个模态创建一个掩码,如果模态数据不缺,即索引为1,那么保持原始数据,如果缺失,即索引为0,则将数据元素置为0。

对于每个模态的数据,还计算一个反转的掩码,将缺失数据的位置设置为原数据,非缺失数据的位置置为0。这通常用于在模型训练时处理非缺失数据。

模态编码器网络:

使用情态编码器网络基于原始情态特征x提取特定情态的话语级嵌入。如图2(b)所示,我们首先在多情态情感识别模型中预训练情态编码器网络,并在MMIN模型中进一步训练。我们将每种模态的模态特定嵌入定义为,其中EncA、EncV和EncT分别代表声学、视觉和文本编码器,分别代表相应编码器生成的模态特定嵌入。

  • 视觉编码器(Enc_V):DenseNet 网络用于提取视觉特征。
  • 音频编码器(Enc_A):基于 LSTM 捕获音频时序特征。
  • 文本编码器(Enc_T):TextCNN 用于提取文本的上下文表示。

缺少模态条件创建:

给定具有所有三种模式的训练样本中,有6种不同的可能的失模态条件,如表1所示。我们可以建立一个跨情态对,其中available和Missing分别表示可用模态和相应的缺失模态。为了确保统一的模型能够处理各种缺少模态的情况,我们对模态编码器网络强制执行统一的三重输入格式。在缺失模态条件下,相应缺失模态的原始特征被零向量代替。例如,在视觉模态缺失条件下(表1中的情形1),可用模态的统一格式输入格式为,其中是指零向量。

在缺失模态训练条件下,输入包括统一三联体格式的可用模态和缺失模态的跨模态对(如表1所示)。这些跨模态对的多模态嵌入可以表示为(以视觉模态缺失条件为例):

其中表示相应模态缺失时的模态特定嵌入,由输入零向量的相应模态编码器产生。

想象模块:

我们提出了一个基于自编码器的想象模块来预测缺失模态的多模态嵌入,给出了可用模态的多模态嵌入。想象模块期望通过跨模态想象学习鲁棒联合多模态表征。如图2(a)所示,我们采用了级联残差自编码器(CRA) (Tran et al ., 2017)结构,该结构具有足够的学习能力,并且比标准自编码器收敛更稳定。

Q:讲一下想象模块的流程

A:想象模块的目的是通过学习不同模态间的相关性,生成缺失模态的假设表示。

CRA由一系列残差自编码器连接而成。每个RA都设计来逐步调用前一个RA的输出,通过累加所有RA的输出来构建最终的预测结果。

前向想象:

反向想象:

反向想象过程旨在验证前向预测的准确性,通过尝试从预测的嵌入h'重构出原始的多模态嵌入:

残差自编码器结构是由一系列残差自编码器(RAs)连接而成。我们进一步采用周期一致性学习用两个独立网络的耦合网络架构在两个方向上进行想象,包括想象方向。

具体来说,我们使用一个有B个RA的CRA模型,每个RA用,每个RA的计算可定义为:

其中h是基于统一跨模态对格式(Eq.(1))的可用模态提取的多模态嵌入,表示第k次RA的输出。以视觉模态缺失情况为例(如图2(a)所示),正向想象的目的是基于可用的声学模态和文本模态来预测缺失视觉模态的多模态嵌入。前向想象多模态嵌入表示为:

其中imagine(·)表示想象模块的功能。后向想象的目的是基于前向想象的多模态嵌入来预测可用模态的多模态嵌入。后向想象的多模态嵌入表示为:

分类:

我们收集前向想象模块中每个自编码器的潜在向量,并将它们连接在一起形成联合多模态表示:,其中ck是自编码器在第k个RA中的潜在向量。基于联合多模态表示R,我们计算概率分布q为:

fcls(·)表示由多个完全连接层组成的情感分类器。

联合优化

MMIN训练的损失函数包括三部分:

p为onehot标签的真实分布,q为式(5)中计算的预测分布。

是分布p和q之间的交叉熵。

为模态编码器网络提取的真值表示,如式(1)所示。我们将这三种损失合并为如下的联合目标函数,共同优化模型参数:

experiments:

dataset:

实验训练设置:

我们首先将包含所有三种模态的原始训练集定义为全模态训练集。在全模态训练集的基础上,我们构造了另一个包含跨模态对的训练集来模拟可能的缺模态情况,并将其定义为缺模态训练集,用于训练所提出的最小最小模态。每个训练样本生成6个不同的跨模态对(表1)。因此,生成的跨模态对的数量是全模态训练样本数量的6倍。

实验测试设置:

我们首先将包含所有三种模态的原始测试集定义为全模态测试集。为了评估该方法在不确定缺失模态条件下的性能,我们分别构建了6个不同的缺失模态测试子集,对应于6种可能的缺失模态条件。例如,在推理阶段,在图2(c)所示的缺失视觉模态条件下,缺失模态测试样本的统一格式的原始特征为(x a;十五小姐;xt)。我们将所有六个缺失模态测试子集组合在一起,并将其表示为缺失模态测试集。

原始特征提取:

我们遵循并提取每个模态的帧级原始特征。

声学特征:使用OpenSMILE工具包(Eyben et al ., 2010)配置“IS13 ComParE”提取帧级特征,其性能与(Liang et al ., 2020)中使用的IS10话语级声学特征相似。我们将特征表示为“ComParE”,特征向量为130维。

视觉特征:我们使用预训练的DenseNet (Huang 2)提取面部表情特征,为了便于与基于顺序翻译的缺失模态方法MCTN进行公平比较,我们采用了基于面部表情识别加(FER+)语料库(Barsoum et al ., 2016)训练的帧级特征,该特征可直接用于MCTN方法等,2017)。我们将面部表情特征表示为“Denseface”。“Denseface”是基于视频帧中检测到的人脸的帧级序列特征,其特征向量为342维。

文本特征:我们使用预训练的BERT-large模型(Devlin等人,2019)提取上下文词嵌入,该模型是最先进的语言表示之一。我们将单词嵌入表示为“Bert”,特征是1024维的。

高级特征编码器

为了为想象模块生成更有效的句子级特定于情态的表示,我们为不同的情态设计了不同的情态编码器。

声学模态编码器(EncA):我们采用长短期记忆(LSTM)网络(Sak等人,2014)来捕获基于序列帧级原始声学特征的时间信息。然后基于LSTM隐藏状态,利用最大池化方法得到话语级声学嵌入h a。

视觉模态编码器(Visual Modality Encoder, EncV):我们对序列帧级面部表情特征x v采用与EncA相似的方法,得到话语级视觉嵌入h v。

文本情态编码器(EncT):我们使用TextCNN (Kim, 2014)基于顺序词级特征xt得到话语级文本嵌入作为h t

baseline:

实现细节:

表3给出了我们的实现细节。我们分别在IEMOCAP和MSP-IMPROV上使用10倍和12倍说话人独立交叉验证来评估模型。对于IEMOCAP的实验,我们进行了四个会话,剩下的部分由演讲者分成验证集和测试集。对于MSPIMPROV,我们取10个说话人的话语进行训练,剩下的2个说话人按说话人分为验证集和测试集。每个实验我们用最多100个epoch来训练模型。我们在验证集上选择最佳模型,并在测试集上报告其性能。为了证明模型的稳健性,我们对每个模型运行三次,以减轻参数随机初始化的影响,并对模型比较进行显著性检验。所有模型都使用Pytorch深度学习工具包实现,并在单个Nvidia GTX 1080Ti显卡上运行。

对于IEMOCAP的实验,我们使用了两个评价指标:加权精度(WA)和非加权精度(UA)。由于MSP-IMPROV上情绪类别的不平衡,我们使用f-score作为评价指标。

全模态基线结果

我们首先在全模态条件下将我们的全模态基线与几种最先进的多模态识别模型进行比较。表4的结果显示,我们的全模态基线优于其他最先进的模型,这证明我们的模态编码器网络可以为多模态情感识别提取有效的表示。

不确定模态缺失结果

表5给出了我们提出的MMIN模型在不同失模态测试条件和全模态测试条件下的实验结果。在IEMOCAP上,与表4中的“全模态基线”结果相比,我们看到在不确定的缺失模态测试条件下,性能显著下降,这表明在全模态条件下训练的模型对缺失模态问题非常敏感。将缺失模态训练集和全模态训练集结合起来训练基线模型的直观解“增强基线”在缺失模态测试条件下比全模态基线有明显改善,说明数据增强有助于缓解训练和测试数据不匹配的问题。更值得注意的是,在所有可能的缺失模态测试条件下,我们提出的MMIN显著优于全模态基线和增强基线。在全模态测试条件下,即使MMIN模型不使用全模态训练数据,它也优于这两个基线。结果表明,所提出的MMIN模型能够学习到鲁棒联合多模态表示,从而在不同失模态和全模态测试条件下都能获得一致的较好的性能。这是因为我们提出的MMIN方法不仅具有数据增强能力,而且可以学习到更好的联合表示,从而可以保留其他模态的信息。

我们进一步分析了不同缺失模态条件下的性能。与增强基线相比,我们的MMIN模型在一种可用模态条件下(fag、fvg或ftg)取得了显著的改进,特别是对于弱模态fag和fvg。即使对于强情态组合,如fa,它也比增强基线带来了一些改进;tg。这些实验结果表明,通过MMIN学习的联合表示确实从其他模态中学习了互补信息,以补偿弱模态。

表5中的底部块显示了MSP-IMPROV数据集上的性能比较。

在不同的缺失模态和全模态测试条件下,我们提出的MMIN模型再次显著优于两个基线,这表明MMIN在不同数据集上具有良好的泛化能力。

我们还比较了MCTN (Pham等人,2019)模型,该模型是解决模态缺失问题的最先进模型。就像MCTN一样不能在一个统一的模型中处理不同的失态条件,所以我们必须在每个失态条件下训练一个特定的模型3。

对比结果表明,我们提出的MMIN模型不仅可以用统一的模型处理不同的缺失模态和全模态测试条件,而且在所有缺失模态条件下都能始终优于MCTN模型。

消融实验

我们通过实验验证了想象模块的结构和循环一致性学习在MMIN中的作用。

想象模块的结构。我们首先研究了不同网络结构对想象模块性能的影响。具体来说,我们对MMIN中的自编码器和CRA结构进行了比较,我们采用相同的参数尺度来保证比较的公平性。如表6所示,在不同的缺模态和全模态测试条件下,采用自编码器结构“MMIN-AE”的想象模块的性能都比采用CRA结构的想象模块差。性能比较表明,CRA比Autoencoder模型具有更强的想象能力。

循环一致性学习。为了评估循环一致性学习在MMIN中的影响,我们使用第4.3节中描述的特征,并遵循(Pham et al, 2019)中的训练设置进行MCTN实验。MCTN模型不能在全模态测试条件下进行评估,因为目标模态不能为None。

我们使用有或没有循环一致性学习的MMIN进行了实验。如表6所示,未经循环一致性学习训练的模型在所有条件下的性能都有所下降,这表明循环一致性学习可以增强想象能力,学习到更鲁棒的联合多模态表示。

MMIN核心竞争力分析

我们在IEMOCAP上进行了详细的实验,以证明我们的MMIN模型的联合表征学习能力和想象能力。

联合表示学习能力:由于联合表示希望保留多个模态的信息,我们通过实验来评估MMIN的联合表示学习能力。我们将MMIN与基线模型在模态匹配条件下进行比较,其中训练数据和测试数据包含相同的模态。如表7所示,与基线模型相比,MMIN达到了相当甚至更好的性能,这说明MMIN具有学习有效联合多模态表示的能力。我们还注意到数据增强模型不能打败相应匹配的部分模态基线模型,这表明数据增强模型不能学习联合表示

想象能力:图3可视化了使用t-SNE的男说话者和女说话者的真多模态嵌入(图2中的^h)和MMIN想象的多模态嵌入(图2中的h 0)的分布(Maaten和Hinton, 2008)。我们观察到真值的分布嵌入和想象嵌入非常相似,尽管视觉模态嵌入的分布略有偏差,但这主要是因为该数据集的视觉模态质量较差。这表明MMIN可以基于可用模态来想象缺失模态的表示

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java Web】监听器类型及其使用

文章目录 监听器使用监听器类型ServletContextListenerHttpSessionListenerServletRequestListenerServletContextAttributeListenerHttpSessionAttributeListenerServletRequestAttributeListenerHttpSessionBindingListener 监听器(Listener)组件用于监…

conda创建 、查看、 激活、删除 python 虚拟环境

1、创建 python 虚拟环境 ,假设该环境命名为 “name”。 conda create -n name python3.11 2、查看 python 虚拟环境。 conda info -e 3、激活使用 python 虚拟环境。 conda activate name 4、删除 python 虚拟环境 conda remove -n name --all ​​ 助力快速掌握数据集…

LaTeX之四:如何兼容中文(上手中文简历和中文论文)、在win/mac上安装新字体。

改成中文版 如果你已经修改了.cls文件和主文档,但编译后的PDF仍然显示英文版本,可能有以下几个原因: 编译器问题:确保你使用的是XeLaTeX或LuaLaTeX进行编译,因为它们对Unicode和中文支持更好。你可以在你的LaTeX编辑器…

视频遥控打药履带机器人技术详解

视频遥控打药履带机器人技术是一种集成了遥控操作、视频监控和履带行走系统的现代化农业植保技术。以下是对该技术的详细解析: 一、技术概述 视频遥控打药履带机器人主要由履带行走系统、药箱、喷雾系统、遥控系统以及视频监控系统等部分组成。通过遥控操作&#…

BB1-NHS ester被用于将各种生物活性分子与蛋白质或其他生物大分子进行共轭连接,2082771-52-4

CAS号:2082771-52-4 中文名:BB1-琥珀酰亚胺酯,BB1-活性酯 英文名:BB1-NHS ester,或BB1-Succinimidyl Ester 分子式:C32H32N6O4 分子量:564.63 纯度:≥95% 供应商:陕…

MongoDB在现代Web开发中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 MongoDB在现代Web开发中的应用 MongoDB在现代Web开发中的应用 MongoDB在现代Web开发中的应用 引言 MongoDB 概述 定义与原理 发展…

激光雷达不够用,怎么办?Ubuntu如何用一个激光雷达实现两个激光雷达的扫描点云效果?点云配准ICP,点云拼接、话题转换、ROS重录制bag包。

1.首先至少得有一个激光雷达,如果没有的话,可以考虑花呗买一个,毕竟研究这东西,有个实物还是比较稳妥,这里我选择的是Livox Mid-360,哈哈哈,公司的,大概长这样: 2. 比如我们想要用激…

STM32H743ZIT6+LWIP+MPU+CUBEMX,通过stm32cubemx完成初始化,ping包亲测没问题,带解释!!

文章耗时两个月,原来写了一半,后来遇到其他项目,中间自己重新画了一块电路板。终于把初始化功能实现了,网上的教程能用的确实凤毛麟角! 一、MPU配置详解 个人对stm32H7的MPU属于新接触,为了弄懂&#xff0…

python制作一个简单的端口扫描器,用于检测目标主机上指定端口的开放状态

import argparse # 用于解析命令行参数 from socket import * # 导入 socket 库的所有内容,用于网络通信 from threading import * # 导入 threading 库的所有内容,用于多线程操作 # 创建一个信号量,初始值为 1,用于线程同步&…

网络基础Linux(整理)

计算机网络背景 网络发展 独立模式: 计算机之间相互独立; 网络互联: 多台计算机连接在一起, 完成数据共享; 局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起; 广域网WAN: 将远隔千里的计算机都连在一起; 所谓 "局域网" 和 "广域网" 只是一个…

我的第一个PyQt5程序

PyQt5的开发环境配置完成之后,开始编写第一个PyQt5的程序。 方法一:使用将.ui转换成.py文件的方法 import sys from FirstPyQt import Ui_MainWindow from PyQt5.QtWidgets import *#QtCore,QtGui,QtWidgets # from QtTest import Ui_MainWindow#导入Q…

面试:TCP、UDP如何解决丢包问题

文章目录 一、TCP丢包原因、解决办法1.1 TCP为什么会丢包1.2 TCP传输协议如何解决丢包问题1.3 其他丢包情况(拓展)1.4 补充1.4.1 TCP端口号1.4.2 多个TCP请求的逻辑1.4.3 处理大量TCP连接请求的方法1.4.4 总结 二、UDP丢包2.1 UDP协议2.1.1 UDP简介2.1.2…

Vue全栈开发旅游网项目(11)-用户管理前端接口联调

联调基本步骤 1.阅读接口文档 2.配置接口地址 3.使用axios获取数据 4.将数据设置到模型层 1.发送验证码联调 1.1 配置接口地址 文件地址:src\utils\apis.js //系统相关的接口 const SystemApis {sliderListUrl:apiHost"/system/slider/list/",//发送…

【相关分析方法】MATLAB计算滑动时滞相关系数

【相关分析方法】MATLAB计算滑动时滞相关系数 1 滑动时滞相关系数2 MATLAB代码2.1 函数代码2.2 案例参考滑动时滞相关系数(Moving Time-Lagged Cross-Correlation, TLCC) 是一种常用于分析两个时间序列之间的滞后关系的工具。它可以帮助我们确定一个时间序列相对于另一个时间…

llama-cpp模型轻量化部署与量化

一、定义 定义配置环境遇到的问题,交互模式下模型一直输出,不会停止模型量化Qwen1.5-7B 案例demo 二、实现 定义 主要应用与cpu 上的部署框架。由c完成。配置环境 https://github.com/ggerganov/llama.cpp https://github.com/echonoshy/cgft-llm/blo…

MySQl基础----Linux下数据库的密码和数据库的存储引擎(内附 实操图和手绘图 简单易懂)

绪论​ 涓滴之水可磨损大石,不是由于他力量强大,而是由于昼夜不舍地滴坠。 只有勤奋不懈地努力,才能够获得那些技巧。 ——贝多芬。新开MySQL篇章,本章非常基础,但同时需要一定的Linux基础,所以假若你没学习…

Qwen2-VL:发票数据提取、视频聊天和使用 PDF 的多模态 RAG 的实践指南

概述 随着人工智能技术的迅猛发展,多模态模型在各类应用场景中展现出强大的潜力和广泛的适用性。Qwen2-VL 作为最新一代的多模态大模型,融合了视觉与语言处理能力,旨在提升复杂任务的执行效率和准确性。本指南聚焦于 Qwen2-VL 在三个关键领域…

科技资讯|Matter 1.4 标准正式发布,低功耗蓝牙助力其发展

连接标准联盟(CSA)宣布推出最新的 Matter 1.4 版本,引入了一系列新的设备类型和功能增强,有望提高包括 HomeKit 在内的智能家居生态系统之间的互操作性。 设备供应商和平台能够依靠增强的多管理员功能改善多生态系统下的用户体验&…

群控系统服务端开发模式-应用开发-前端登录页面开发

一、清理不必要的文件 1、删除auth-redirect.vue a、在根目录src文件夹下views文件夹下找到登录文件夹login,在login文件夹中删除auth-redirect.vue文件。 b、在根目录mock文件夹下role文件夹中的routes.js文件中,删除下面的代码 {path: /auth-redirect…

深入理解接口测试:实用指南与最佳实践5.0(三)

✨博客主页: https://blog.csdn.net/m0_63815035?typeblog 💗《博客内容》:.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 📢博客专栏: https://blog.csdn.net/m0_63815035/cat…