《CARAT: Contrastive Feature Reconstruction and Aggregation...》中文校对版

news2024/11/16 21:50:25

系列论文研读目录

例如:


文章目录

  • 系列论文研读目录
  • 摘要
  • 引言
  • 相关作品
  • 方法论
    • 问题定义
    • 单模态标签特征提取
    • 基于对比重建的融合
  • 基于Shuffle的特征聚合
  • 实验
    • 实验设置
    • 实验结果
  • 分析
  • 结论


摘要

多模态多标签情感识别(Multi-modal multi-label emotion recognition,MMER)是从多种模态中识别相关情感的方法。MMER面临的挑战是如何从异构数据中有效地捕获多个标签的区别性特征。近年来的研究主要致力于探索各种融合策略,以将多模态信息整合为所有标签的统一表示。然而,这样的学习方案不仅忽略了每个模态的特异性,而且不能捕获不同标签的个体区别特征。此外,标签和模态的依赖性不能被有效地建模。针对这些问题,提出了一种基于对比特征重构与融合的MMER算法。在此基础上,提出了一种基于对比特征重构与融合的MMER算法。具体地说,我们设计了一种基于重构的融合机制,通过对比学习模态分离和标签特定的特征,更好地建模细粒度的模态-标签依赖性。为了进一步挖掘模态互补性,我们引入了一种基于shuffle的聚合策略来丰富标签间的共现协作。在两个基准数据集CMU-MOSEI和M3 ED上的大量实验表明,CARAT方法优于最先进的方法。代码可在https://github.com/chengzju/CARAT上获得。

引言

多模态多标签情感识别(MMER)的目的是识别多种情感(例如,快乐和悲伤)从多个异质模态(例如,文本、视频和音频)。在过去的几十年里,MMER推动了许多社区的研究,如在线聊天(Galik和Rank 2012)、新闻分析(Zhu、Li和Zhou 2019)和对话系统(Ghosal等人2019)。
与单模态任务不同,多模态学习协同处理来自不同来源的异构信息,这就带来了如何从多模态中获取区别性表征的挑战。为此,最近的工作提出了各种先进的多模态融合策略,以弥合模态差距并学习有效的表征(Ramachandram和Taylor 2017)。根据融合方式,方法大致可分为三类:基于聚合的、基于比对的和两者的混合(Baltruˇsaitis、Ahuja和Morency 2019)。基于聚合的融合采用平均(Hazirbas等人,2017)、级联(Ngiam等人,2011)或注意(Zadeh等人,2018 a)来整合多模态特征。基于对齐的融合(Pham et al. 2018,2019)采用跨模态自适应来对齐不同模态的潜在信息。然而,将多个情态统一为同一表征,必然会忽略每个情态的特殊性,从而失去其丰富的区分特征。尽管最近的研究(Hazarika,Zimmermann,and Poria 2020; Zhang et al. 2022)试图学习特定模态的表征,但他们仍然利用注意力将这些表征融合为一个。因此,如何在保持模态特异性的同时有效地表示多模态数据并整合互补信息是MMER的一个关键挑战。
作为一项多标签任务(Zhang and Zhou 2013),MMER还需要处理标签间复杂的依赖关系。如今,大量研究尝试了各种方法来探索标签相关性,例如标签相似性(Xiao et al. 2019)和共现标签图(Ma et al. 2021)。然而,这些静态相关性并不能反映标签间的协作关系。另一方面,MMER的另一个棘手难题是如何学习标签和模态之间的依赖关系。通常,不同的模态具有不一致的情感表达,相反,不同的情感集中在不同的模态上,这意味着推断每个潜在标签在很大程度上取决于不同模态的不同贡献。如图1所示,我们可以更容易地从视觉模态推断悲伤,而厌恶可以从文本模态和视觉模态预测。因此,MMER的另一个挑战是如何有效地建模标签到标签和模态到标签的依赖性。
为了解决这些问题,我们提出了一个基于对比特征重构和聚合的MMER(CARAT)模型,它在一个连贯和协同的框架中协调表示学习和依赖建模。具体而言,我们的框架CARAT包含三个关键组件。首先,我们采用标签式注意机制分别提取每个模态中的标签特有表征,在保持模态特有性的同时,捕获每个标签的相关区别特征.其次,为了协调多模态信息的互补性和特异性,我们提出了一种基于重构的融合策略,试图通过利用来自多模态的信息来生成任意模态的特征。我们利用对比学习(Khosla et al. 2020)(在既往MMER文献中未探索)促进模态分离和标签特异性特征的学习。第三,在重构嵌入的基础上,提出了一种新的基于样本和模态的标签混洗策略,以丰富标签间的共生依赖关系。在混洗之后,聚合嵌入以微调鲁棒鉴别器。此外,在模态-标签依赖建模方面,我们采用了一种最大类池网络来发现每个样本中不同情绪的最相关模态,并促使这些对应的表征更具区分性。1本文的主要贡献可概括如下:·提出了一种新的基于对比度特征的特征重构与融合框架。据我们所知,这项工作开拓了利用对比学习促进基于特征重构的多模态融合机制。作为该方法的一个组成部分,我们还引入了一种基于洗牌的特征聚合策略,该策略使用重构的嵌入来更好地利用多模态互补性。·为了保持模态的特异性,CARAT通过标签式注意从不同的模态中独立地提取标签特异性表征。然后,通过一个最大类池网络来选择与每个情绪最相关的模态表示,以探索模态和标签之间的潜在依赖关系。·例如,当一位用户在浏览运动品类下的商品时,其可能同时有购买足球和运动衫这两种商品的意图。实验结果表明,文中算法不仅有效而且提高了算法的实时性。

相关作品

多模态学习旨在构建能够处理和关联来自多种模态的信息的模型(Baltruˇsaitis、Ahuja和Morency,2019)。一个基本的挑战是如何有效地融合多模态信息。根据融合方式的不同,方法大致可以分为三类:基于聚合的方法、基于比对的方法和混合的方法。基于聚合的方法使用串联(Ngiam等人,2011)、张量融合(Zadeh等人,2017; Liu等人,2018)和注意(Zadeh等人,2018 a)来联合收割机多种模态,但存在模态间隙。为了弥合这一差距,基于对齐的融合(Pham et al. 2018,2019)通过构建联合嵌入空间来利用潜在的跨模态适应。然而,基于比对的融合方法忽略了各模态的特异性,导致识别信息的遗漏。
多标签情感识别是一项基础性的多标签任务,多标签情感识别方法可以快速应用。BR(Boutell et al. 2004)将ML任务分解为多个二进制分类任务,同时忽略标签相关性。为了利用相关性,提出了LP(Tsoumakas和Katakis,2006年)、CC(Read等人,2011年)和Seq 2Seq(Yang等人,2018年)。为了进一步探索标签关系,最近的研究利用了强化方法(Yang et al. 2019),多任务模式(Tsai和Lee 2020)和GCN模型(Chen et al. 2019 b)。另一个重要的任务是学习有效的标签表示法。为了弥补单一表示无法捕获所有标签的区分信息,最近的工作(Chen et al. 2019 a,B)利用标签特定表示来捕获每个标签的最相关特征,这已成功应用于许多研究(Huang et al. 2016; Xiao et al. 2019)。
对比学习(CL)是一种有效的自我监督学习技术(Li等人,2021; Oord、Li和Vinyals,2018; Hjelm等人,2019)。CL的目标是学习一个有区别的潜在空间,其中相似的样本被拉在一起,不相似的样本被推开。受CL在无监督学习中的成功应用(Oord,Li,and Vinyals 2018; He et al. 2020)的激励,设计了监督对比学习(SCL)(Khosla et al. 2020),以促进一系列监督任务。最近,CL已被应用于多模态任务,以加强不同模态特征之间的相互作用(Zheng等人,2022; Franceschini等人,2022; Zolfaghari等人,2021)。然而,在多标签情境下,对多模态任务的对比学习还没有相关的研究。

方法论

在本节中,我们将描述我们的CARAT框架,它包括三个顺序组件(如图2所示)。
在这里插入图片描述CARAT的整体结构有三个连续的步骤(向上)。两级特征重构网络、对比表示学习网络和类最大池网络的详细实现(底部)。

问题定义

在这里插入图片描述
我们为MMER定义符号。设Xt ∈ Rnt×dt,Xv ∈ Rnt ×dv和Xa ∈ Rna×da分别为文本(t)、视觉(v)和声学(a)模态的异构特征空间,其中nm和dm分别表示序列长度和模态维数(m ∈ {t,v,a}用于表示任何模态).Y是带有C标签的标签空间。给定训练数据集D= {(X{t,v,a} i,yi)}N i=1,MMER旨在学习函数F:Xt ×Xv ×Xa 7→ Y以预测每个视频的相关情绪。具体地,Xm,i ∈ Xm是异步协调话语序列,并且yi ={0,1}C是多热标签向量,其中符号yi,j =1指示样本i属于类别j,否则yi,j =0。

单模态标签特征提取

作为第一步,该组件旨在为每个模态中的每个标签提取相关的判别特征。
在这里插入图片描述
基于transformer的提取器。对于每个模态m,我们使用独立的Transformer编码器(Vaswani等人,2017)将原始特征序列Xm ∈ Rnm×dm映射到高级嵌入序列Hm ∈ Rnm×d。每个编码器由lm个相同的层组成,其中每个层由两个子层组成:多头自注意子层和位置前馈子层。在两个子层中的每一个周围采用残差连接(He等人,2016),然后进行层归一化。
在这里插入图片描述
多标签注意。考虑到每种情感通常由话语中最相关的部分来表达,我们为每种情感生成标签特定的表示,以捕获最关键的信息。在获得嵌入序列Hm之后,我们通过标签式注意力网络来计算在每个模态m下每个标签j的这些嵌入的组合。形式上,我们将每个嵌入的隐状态表示为hmi ∈ Rd(i ∈ [nm]).注意表示um j可由下式得到:um j = nm Xi =1 αm ij hmi,αm ij = exp(wm j hmi)Pnm i′=1 exp(wm j hmi ′),(1)其中wm j ∈ Rd表示第j个标签的注意参数,αm ij是hmi的归一化系数.值得注意的是,模态之间的注意网络仍然是相互独立的,从而分别生成标记特定的表示Umo ∈ RC×d。

基于对比重建的融合

第二部分旨在利用来自多个模态的信息来恢复任何模态的特征。
在这里插入图片描述
在这里插入图片描述

多模态特征重构。考虑到将多模态信息融合到一个相同的表示中可能会忽略模态特异性,本文提出了一种基于重构的融合机制,该机制利用当前模态中的特征分布和其他模态中的语义信息来恢复任何模态的特征。我们首先使用三个模态特定编码器Enm(·)将Um o投影到潜在空间Sz中的潜在向量Zm o ∈ RC×dz中。从空间Sz,我们计算内在向量Dm = {dm j ∈ Rdz}C j=1以反映不同模态中的每个标签j的特征分布(在下一子部分中解释)。然后,三个模态特定解码器Dem(·)分别将矢量Zm,o和Dm变换回解码矢量Zm,o和Dm ∈ RC×d。为了实现跨模态特征融合,我们采用了具有三个网络fva 2 t(·)、fta 2 v(·)和ftv 2a(·)的两级重建过程(详细分析见附录A)。以情态t为例,我们首先将内在特征D t和语义特征U {v,a} o按照一定的情态顺序连接起来,其中前者反映了当前情态(t)的特征分布,后者提供了其他情态(v,a)的语义信息。将级联向量输入到fva 2 t(·)中以获得第一级重构表示(FRR)Ut α ∈ RC×d。然后,将所有模态的Um α连接并馈送到fva 2 t(·)以生成第二级重建表示(SRR)Ut β ∈ RC×d。所有模态的基于重建的融合过程表示为,
为了确保重构的特征向量能够恢复原始信息,我们使用均方误差将重构损失公式化为:Lrec = XM m Um o − Um o F + Um o −Um α F,(3)其中·F返回矩阵的Frobenius范数。由于通道的异质性,不同的通道表达不同的情绪。因此,我们引入了一个最大池式网络,促使每个标签专注于其最相关的模态。具体地,我们利用Um o、Um α、Um β上的三个模态特定分类器h{t,v,a}(·)来分别计算{t,v,a}模态的标签预测。然后,我们在这些预测上连接一个Max-Pooling层,以过滤每个标签的最相关模态。以Um o为例,通过上述网络的最终输出计算为,so = MaxPool � ht(Ut o),hv(Uv o),ha(Ua o)∈ RC。(4)同样,我们也可以得到sα和sβ。最后,我们计算二进制交叉熵(BCE)损失为:Llsrcls = γol(so,y)+ γαl(sα,y)+ γβl(sβ,y),(5)其中l是BCE损失,γo,α,β是权衡参数。
在这里插入图片描述
在这里插入图片描述
对比表征学习。为了使内在向量Dm能够反映不同模态中每个标签的特征分布,我们利用对比学习来学习可区分的潜在嵌入空间Sz。对于批量大小为B的样本,在获得Um o、Um α、Um β之后,我们将它们馈送到对应的编码器Enm(·)以分别生成L2归一化潜在嵌入Zm o、Zm α、Zm β ∈ RC×dZ。我们遵循SCL(Khosla et al. 2020),并额外维护一个存储最新潜在嵌入的队列,并按时间顺序更新队列。因此,我们有一个对比嵌入池E = {Z{t,v,a} {o,α,β}}B i=1 × 1队列。给定一个锚嵌入e ∈ E,对比损失通过将其正集与池E的其余部分进行对比来定义,Lscl(e,E)= − 1| P(e)|X e+∈P(e)log exp e ∈ X e+/τ Pe ′∈E(e)exp(e ∈ e′/τ),(6)其中P(e)是正集,E(e)= E{e} .τ ∈ R+是温度。批的对比损失为:Lscl = Xe ∈E Lscl(e,E).(7)为了构造正集,考虑到学习每个标签的模态特定特征分布的目的,我们为每个e重新定义标签。根据模态m、标签类别j和标签极性k,定义新标签为:n_y = lmj,k,m ∈ {t,v,a},j ∈ [C],k ∈ {pos,neg}.因此,正例被选择为P(e)= {e′| e′ ∈ E(e),< y ′ = < y′ =< y=<y},其中<$y′是e′的标号。换句话说,正集合是来自具有相同标签类别和极性的相同模态的那些嵌入。重要的是,我们保留了对应于每个类lm j,k的原型嵌入μm j,k ∈ Rdz,它可以被视为一组代表性嵌入向量。为了减少计算量和训练延迟,我们以移动平均的方式更新类条件原型向量为,µm j,k = Normalize(µ m j,k +(1 −)e),如果y = lm j,k,(8)其中动量原型µm j,k由其定义的类符合lm j,k的归一化嵌入的移动平均值定义。是一个超参数。在训练期间,我们利用原型来获得固有向量Dm = [dm 1,…,dm C ]通过软最大值模式作为,dm j = {pos,neg}X k αm j,kum j,k,αm j,k = exp(e_sum j,k){pos,neg}P k′ exp(e_sum j,k′),(9),而在预测期间,硬最大值模式作为,dm j =I[αm j,pos>αm j,neg]um j,pos + I[αm j,pos≤αm j,neg] um j,neg,(10)使用,其中I[·]是指示函数。

基于Shuffle的特征聚合

在这里插入图片描述
虽然利用最相关的模态足以找到判别特征,但多模态融合可以使用互补信息来获得更鲁棒的表示。因此,我们设计了一个基于洗牌的聚合,利用跨模态的信息,其中包括样本和模态明智的洗牌过程。样本和模态混洗的动机分别是为了丰富标签的同现关系和实现随机跨模态聚合。如图3所示,在获得一批样本的SRR之后,顺序且独立地执行两个混洗过程。具体来说,我们将批次的向量Um β堆叠为V = Stack [Ut β;Uv β ;Ua β ]i B i=1 ∈ RB×M×C×d,其中M是模态的数量。首先,在每个模态m上,我们执行样本式混洗(sws),V[:,m]:= [vm 1,…,vm B ] sws → vm V[:,m]:= vm r1,…其中{ri}B是样本的新索引。然后,对于每个样本,模态混洗(mws)被执行为:…,VvM i mws → VvV [i,:]:= [Vvr1 i,…其中{ri} M1是模态的新索引。然后,分别在标签维度上级联V和V,如Q = n qm i = [vm i,1; …; vm i,C] {t,v,a} m oB i ∈ RB×M×C·d,Q = n q m i = [n vm i,1; …d.;[v,v,a] {t,v,a} m oB i ∈ RB×M×C.(13)值得注意的是,与由来自单个模态和单个样本的特征连接的qm i不同,构成Qqm i的特征从1到M个模态和1到C个样本中随机采样。最后,使用Q和Q来微调具有BCE损失的分类器hc(·),Lagg cls = 1 M XM m l(hc(qm),yqm)+ γsfl(hc(qm),y qm),(14)其中γsf是权衡参数。结合方程3、5、7和14,最终目标函数可表示为L = Lagg cls + Llsr cls ++γsLscl + γrLrec,(15)其中γs、γr为权衡参数。在预测过程中,利用最相关模态和多模态融合,得到测试样本i′的预测结果:y β i′ = 1 2(1 M XMmhc(qmi ′)+ sβ i′)∈ RC.(十六)
在这里插入图片描述shuffle的语义图。洗牌是在批量和模态维度上进行的。不同的颜色代表不同的模态。洗牌后,新的同现关系可以出现在训练集中(灰色虚线框)。

实验

实验设置

数据集和评估指标。我们在两个基准MMER数据集(CMU-MOSEI(Zadeh et al. 2018 b)和M3 ED(Zhao et al. 2022))上评估了CARAT,这些数据集保持了公共SDK 23中的设置。采用了四个评价指标:准确度(Acc)、Micro-F1、精确度(P)和召回率(R)。数据集的更详细描述和预处理见附录B。
基线。我们将CARAT与两组的各种入路进行了比较。第一组是多标签分类(MLC)方法。具体地,在这些方法中,多模态输入被早期融合(简单地级联)为新的输入。对于经典方法:(1)BR(Boutell等人,2004)将MLC转换为多个二元分类,同时忽略标签相关性。(2)LP(Tsoumakas and Katakis 2006)将初始标签集分解为若干随机子集,并训练相应的分类器。(3)CC(Read等人,2011)通过考虑高阶标签相关性,将MLC转换为一系列二元分类问题。对于基于深度的方法:(4)SGM(Yang et al. 2018)将MLC视为通过标签相关的序列生成问题。(5)LSAN(Xiao et al. 2019)探索了标签和文档之间的语义连接,以构建标签特定的文档表示。(6)ML-GCN(Chen等人,2019 b)采用GCN映射标签表示并捕获标签相关性以进行图像识别。
第二类是多模态多标记方法。(7)MulT(Tsai等人,2019)使用跨模态交互将信息从一种模态融合到另一种模态。(8)MISA(Hazarika,Zimmermann,and Zynga 2020)为融合学习模态不变和模态特定的表示。(9)MMS2S(Zhang et al. 2020)以序列到集合的方法处理模态和标签依赖性。(10)HHMPN(Zhang et al. 2021)通过图形消息传递对特征到标签、标签到标签和模态到标签的依赖关系进行建模。(11)TAILOR(Zhang et al. 2022)逆向描述了模态之间的共性和多样性,以获得区分性表征。(12)AMP(Ge et al. 2023)通过对抗性时间掩蔽和对抗性参数扰动来学习鲁棒的表示。
实作详细数据。我们将隐态的大小设为d = 256,dz = 64。嵌入队列的大小被设置为8192。所有的编码器Enm(·)和解码器Dem(·)都是用两层MLP实现的。我们设定超参数γo=0.01、γα=0.1、γβ =1、γs=1、γsf =0.1和γr =1,不同权重设置的分析见附录A。对于Transformer编码器的层数,我们设置lt =6,lv = la =4。我们使用了Adam(Kingma and Ba 2014)优化器,初始学习速率为5e−5,线性衰减学习速率调度带有预热策略。批大小B设置为64。在训练过程中,我们对20个时期的方法进行训练,以选择在验证集中具有最佳F1分数的模型作为我们的最终模型。所有实验均采用一个NVIDIA A100 GPU进行。

实验结果

性能比较。我们在表1、2中显示了CMU-MOSEI和M3 ED(仅部分多模态基线)的性能比较,观察结果如下:1)CARAT显著优于所有竞争对手。尽管MISA具有突出的召回率,但其精确度下降到很低的值,并且在更重要的指标(MicroF 1和准确度)上,其性能远远不如CARAT。此外,在非结盟环境下,CARAT仍然保持了不错的业绩提升,这证明了CARAT能够更好地打破模态差距的障碍。2)在单模态方法中,基于深度的方法SGM、LSAN和ML-GCN的性能优于经典方法BR、CC和LP,表明深度表示能够更好地捕获语义特征,标签关联有助于捕获更有意义的信息。3)与单模态方法相比,多模态方法表现出更好的性能,这说明了对多模态交互建模的必要性。4)在所有的基线中,TAILOR获得了具有竞争力的性能,这验证了利用模态间的共性和多样性来获得区分性标签表示的有效性。
在这里插入图片描述
在这里插入图片描述
消融研究。为了证明每个组件的重要性,我们将CARAT与各种消融变体进行了比较。如表3所示,我们可以看到:1)同时利用特异性和互补性的效果:通过同时使用最相关模态(MRM)的特征和聚集特征(AGG),(1)优于(2)和(3),这表明了结合模态特异性和互补性的重要性。2)对比表征学习的效果:在不进行损失Lscl的情况下,(4)比CARAT更差,这说明了利用对比学习来学习可区分表征的意义。进一步地,通过去除编码和解码过程,(5)比(4)更差,这验证了在潜在空间中探索本征嵌入的合理性。3)两级特征重构的效果:首先,(6)比CARAT差,这揭示了使用损失Lrec约束特征重构的有效性。与CARAT相比,去除第一级和第二级重建过程,(7)和(8)具有不同程度的性能降级。当去除整个重构过程时,(9)的性能比(7)和(8)进一步降低,这证实了多级特征重构实现多模态融合的有效性。4)不同混洗操作的影响:排除任何一轮混洗过程,(10)和(11)比CARAT更差,当去除两个混洗过程时(12)甚至更差,这证实了在样本和模态维度上执行混洗的有效性。
在这里插入图片描述对准CMU-MOSEI上的消融测试。“MRM”和“AGG”分别表示使用最相关模态和AGGregated特征的特征。“w/o”表示移除。“w/o En,De”表示去除编码和解码。“w/o {α,β,α&β}-recon”表示去除第一级重建、第二级重建或两者。“w/o { sw-,mw-,mw}shf”表示移除样本、模态方式混洗过程或两者。附录A中提供了详细的实现。

分析

可区分表示的可视化。为了研究对比学习(CL)在可区分表示上的功效,我们使用t-SNE(货车der Maaten和欣顿2008)在对齐的CMUMOSEI数据集上可视化空间Sz中的嵌入Zmo,而不使用或使用对比学习。如图5所示,在没有CL的情况下(左图),虽然属于不同模态的嵌入可以很好地区分,但是每个模态中不同类的嵌入被集中在一起。相反,在右边的子图中,属于不同模态和标签的嵌入被明确地彼此分离,并且相同模态的嵌入仍然保持更紧密的分布。因此,利用CL,CARAT产生了分离良好的聚类和更可区分的表示。
模态与标签相关性的可视化。我们将标签与其最相关模态的相关性可视化。如图4(a)所示,每个标签不均等地关注不同的模态,通常有其自己的俯卧模态。模态-标签相关性在标签与标签之间不同,情感惊讶和悲伤分别与视觉情态和语篇情态高度相关。更多可视化示例见附录E。
个案研究。为了进一步证明CARAT的有效性,图4(B)给出了两个案例。1)不同情态所表达的情感是不一致的,这反映了情态的特殊性。例如,在一个示例中,在情况2中,可以从视觉和音频中直观地挖掘情感愤怒,但不能从文本中挖掘。2)HHMPN由于忽略了模态的特异性而错误地省略了相关的标注,导致无法捕获更丰富的语义信息。相反,TAILOR给出了错误的相关标签。由于TAILOR使用的自我注意只能探索每个样本内的标签相关性,因此无法利用全局信息。总的来说,我们的克拉达到了最好的性能。
在这里插入图片描述
在这里插入图片描述

结论

本文提出了一种面向MMER的对比特征重构与聚集(CARAT)方法,该方法将有效的表示学习和多依赖建模集成到一个统一的框架中.提出了一种基于重构的融合机制,通过对比学习模态分离特征和标签相关特征,建立模态与标签之间的细粒度依赖关系模型.为了进一步挖掘模态互补性,我们引入了一种基于shuffle的聚合策略来丰富标签间的共现协作。在基准数据集CMU-MOSEI和M3 ED上,实验表明,CARAT方法优于最先进的方法。

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

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

相关文章

windows10使用bat脚本安装前后端环境之redis注册服务

首先需要搞清楚redis在本地是怎么安装配置、然后在根据如下步骤编写bat脚本&#xff1a; 思路 1.下载zip格式redis 2.查看windows server服务是否已安装redis 3.启动查看服务是否正常 bat脚本 echo off echo windows10 x64 server redis init REM 请求管理员权限并隐藏窗口 …

Total Blocking Time指标

Total Blocking Time 总阻塞时间 (TBT) 是一项用于衡量加载响应能力的重要实验指标&#xff0c;因为它有助于量化网页在变为可靠交互之前处于非交互状态的严重程度。 TBT&#xff08;Total Blocking Time&#xff09;&#xff0c;阻塞总时间&#xff0c;记录在 FCP 到 TTI 之间…

大厂太卷了!又一款一站式AI短剧创作神器,这套AI工作流厉害了:自动生成脚本、角色、分镜、视频、音乐、字幕...(附保姆级教程)

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 行业在卷 AI 应用&#xff0c;而美图已经在卷 AI 工作流了………

每日一题|2516. 每种字符至少取 K 个|双指针、最长子串、字典

本题需要转化求解目标。 对于一个序列&#xff0c;两头收集的最少数量的时候&#xff0c;剩下的部分&#xff08;我们称之为子串&#xff09;就会对应的越长。也就是说&#xff0c;我们只要求解一个满足要求的最长子串&#xff0c;使得两边剩余的字符数量刚好满足要求。 由于…

学习threejs,实现几何体阴影效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言二、&#x1f340;绘制任意字体模型…

量化交易backtrader实践(三)_指标与策略篇(1)_指标简介与手工双均线策略

01_指标 指标是一个汉语词语&#xff0c;读音是zhǐ biāo&#xff0c;意思是衡量目标的参数&#xff1b;预期中打算达到的指数、规格、标准&#xff0c;一般用数据表示。 统计学术语 指标是说明总体数量特征的概念及其数值的综合&#xff0c;故又称为综合指标。在实际的统计…

使用ESPnet的 setup_anaconda.sh安装脚本一步到位,配置conda虚拟环境

使用ESPnet的 setup_anaconda.sh安装脚本一步到位&#xff0c;配置conda虚拟环境 前言 ESPnet&#xff08;End-to-End Speech Processing Toolkit&#xff09;是一款用于语音识别、语音合成等任务的开源端到端语音处理工具包。为了在不同系统上快速配置ESPnet开发环境&#x…

Serverless and Go

本篇内容是根据2019年8月份Serverless and Go音频录制内容的整理与翻译, Johnny、Mat、Jaana 和特邀嘉宾 Stevenson Jean-Pierre 讨论了 Go 世界中的Serverless。什么是Serverless&#xff0c;Serverless适用于哪些用例&#xff0c;有哪些权衡&#xff0c;以及如何在Serverles…

AI芯片WT2605C赋能厨房家电,在线对话操控,引领智能烹饪新体验:尽享高效便捷生活

在智能家居的蓬勃发展中&#xff0c;智能厨电作为连接科技与生活的桥梁&#xff0c;正逐步渗透到每一个现代家庭的厨房中。蒸烤箱作为智能厨电的代表&#xff0c;以其丰富的功能和高效的性能&#xff0c;满足了人们对美食的多样化追求。然而&#xff0c;面对众多复杂的操作功能…

每日OJ_牛客_OR59字符串中找出连续最长的数字串_双指针_C++_Java

目录 牛客_OR59字符串中找出连续最长的数字串 题目解析 C代码1 C代码2 C代码3 Java代码 牛客_OR59字符串中找出连续最长的数字串 字符串中找出连续最长的数字串_牛客题霸_牛客网 题目解析 双指针&#xff1a; 遍历整个字符串&#xff0c;遇到数字的时候&#xff0c;用双…

字符编码发展史4 — Unicode与UTF-8

上一篇《字符编码发展史3 — GB2312/Big5/GBK/GB18030》我们讲解了ANSI编码中的GB2312/Big5/GBK/GB18030。本篇我们将继续讲解字符编码的第三个发展阶段中的Unicode与UTF-8。 2.3. 第三个阶段 国际化 前面提到的第二个阶段&#xff0c;各个国家和地区各自为政&#xff0c;纷纷…

并发编程---线程与进程

业务场景&#xff1a;小明去理发店理发。 小明去理发店理发&#xff0c;完成理发需要吹&#xff0c;剪&#xff0c;洗、理的过程。由这个场景我们引用进程和线程这两个 概念。 一.进程 1.什么是进程 进程是具有独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;是…

【docker】debian中配置docker(2024年9月)

首先Follow了一下菜鸟教程&#xff0c;然后遇到了curl的问题。 curl存在的问题 参见这篇文章。其中用到了vim进行编辑&#xff0c;笔者的环境是windows10putty&#xff0c;vim的粘贴操作参考这篇文章。 修改之后的curl没有问题了&#xff0c;成功把脚本下载下来了。 但是在…

LD2 Scalable Heterophilous Graph Neural Network with Decoupled Embeddings

Neurips 24 推荐指数&#xff1a; #paper/⭐⭐⭐ 领域&#xff1a;可扩展图&#xff0c;大图加速 整个文章的理论部分比较多&#xff0c;尽量尽我所能避开一些额外公式。详细文章&#xff0c;见链接 模型架构 如图&#xff0c;整个模型分为与计算和训练两部分。本文的精华在于…

Docker网络、数据卷及安全优化

目录 一、Docker网络 1、原生bridge网络 2、host网络 3、none网络 4、docker自定义桥接网络 1、Docker自定义网络 2、不同自定义网络通信 3、joined容器网络 5、Docker容器内外网访问 1、容器访问外网 2、外网访问容器 6、macvlan网络实现跨主机通信 二、Docker数据…

Ubuntu下Kafka安装及使用

Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;同时也是一个高吞吐量的分布式发布订阅消息系统。它由Scala和Java编写&#xff0c;具有多种特性和广泛的应用场景。 Kafka是一个分布式消息系统&#xff0c;它允许生产者&#xff08;Producer&#xff09;发布消…

Spring Ioc底层原理代码详细解释

文章目录 概要根据需求编写XML文件&#xff0c;配置需要创建的bean编写程序读取XML文件&#xff0c;获取bean相关信息&#xff0c;类&#xff0c;属性&#xff0c;id前提知识点Dom4j根据第二步获取到的信息&#xff0c;结合反射机制动态创建对象&#xff0c;同时完成属性赋值将…

【移植】标准系统方案之扬帆移植案例

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 本文章是基于瑞芯微RK3399芯片的yangfan开发板&#xff0c;进行标准…

一些写论文必须要知道的神仙级网站!芝士AI(paperzz)

说实话&#xff0c;写论文真的是挺头疼&#xff0c;尤其到了毕业季的时候&#xff0c;没有过任何写作毕业论文的经验的毕业生而言更是如此&#xff0c;相信大家都有过这种状态&#xff0c;不知从何下笔&#xff0c;还需要面对论文进度的压力&#xff0c;并且时常需要寻找各种资…

HDF5文件浏览软件--H5View

概述 H5View是一款轻量级桌面软件&#xff0c;旨在提供用户友好的界面以读取和展示 HDF5 文件中的数据结构。该软件允许用户查看文件的数据目录和数据集&#xff0c;并支持将选定的数据集导出为多种格式。 功能特点 读取 HDF5 文件 支持打开和读取 HDF5 格式的文件。显示文件…