Modality-Aware Contrastive Instance Learning with Self-Distillation ... 论文阅读

Modality-Aware Contrastive Instance Learning with Self-Distillation for Weakly-Supervised Audio-Visual Violence Detection 论文阅读

  • ABSTRACT
  • 1 INTRODUCTION
  • 2 RELATEDWORKS
    • 2.1 Weakly-Supervised Violence Detection
    • 2.2 Contrastive Learning
    • 2.3 Cross-Modality Knowledge Distillation
  • 3 PRELIMINARIES
  • 4 METHODOLOGY
    • 4.1 Two-Stream Network
    • 4.2 MA-CIL
    • 4.3 Self-Distillation
    • 4.4 Learning Objective
  • 5 EXPERIMENT
  • 6 CONCLUSION

文章信息:
在这里插入图片描述

原文链接:https://arxiv.org/abs/2207.05500#:~:text=Weakly-supervised%20audio-visual%20violence%20detection%20aims%20to%20distinguish%20snippets,overlooking%20the%20modality%20heterogeneousness%20over%20the%20weakly-supervised%20setting.
源码:https://github.com/JustinYuu/MACIL_SD
发表于:MM 2022

ABSTRACT

弱监督的音频-视觉暴力检测旨在利用视频级别标签区分包含多模态暴力事件的片段。许多先前的工作在早期或中间阶段执行音频-视觉整合和交互,但忽略了在弱监督设置下的模态异质性。在本文中,我们分析了多实例学习(MIL)过程中的模态异步性和未区分实例现象,并进一步研究了它对弱监督音频-视觉学习的负面影响。为了解决这些问题,我们提出了一种模态感知对比实例学习与自我蒸馏(MACIL-SD)策略。具体来说,我们利用轻量级的双流网络生成音频和视觉袋,其中单模态背景、暴力和正常实例以无监督方式聚类为半袋。然后,音频和视觉暴力半袋表示被组装为正对,暴力半袋与相反模态中的背景和正常实例结合为对比负对。此外,应用自我蒸馏模块将单模态视觉知识转移到音频-视觉模型中,从而减轻噪声并缩小单模态和多模态特征之间的语义差距。实验表明,我们的框架在大规模XD-Violence数据集上比先前的方法表现更好,并且结果还表明我们提出的方法可以用作增强其他网络的插件模块。

1 INTRODUCTION

近年来,暴力检测的范围已经从纯视觉任务 [4, 18, 20, 30, 33, 45, 47, 54, 61, 67, 68] 扩展到了一个音频-视觉多模态问题 [43, 44, 62],其中相应的听觉内容补充了细粒度的暴力线索。尽管许多模态融合和交互方法已经显示出了良好的结果,但在弱监督设置下,多实例学习(MIL)[38] 框架的模态差异仍有待探索。

为了减轻对精细标记数据的需求,多实例学习被广泛应用于弱监督的暴力检测中,其中每个视频序列的输出被形成为一个包含多个片段级实例的袋子。在音频-视觉场景中,所有先前的工作都采用了一个通用方案,将每个音频-视觉片段视为一个完整实例,并将前K个音频-视觉logit的平均值作为最终的视频级别分数。然而,我们分析发现这个公式存在两个缺陷:模态异步性未区分实例。模态异步性表示听觉和视觉暴力线索之间的时间不一致性。以图1(a)中典型的暴力事件滥用为例,当施暴者击打受害者时,尖叫声随后发生,整个过程被视为暴力事件。在这种情况下,视觉模态(第2-3个片段)和音频模态(第4-5个片段)中的部分场景包含暴力线索。我们认为,直接利用音频-视觉对作为一个实例可能会引入数据噪声到视频级别的优化中。我们发现的另一个缺陷是未区分实例,即为了优化选择前K个实例导致大量不相关的实例。如图1(b)所示,在一系列暴力视频中,一些音频/视觉实例反映了暴力事件。相反,其他实例包含了背景噪音等无关元素。与此相对应,在正常事件的视频中,少数片段包含正常事件的元素,而其他片段包含背景信息。在这种情况下,K-max激活放弃了包含背景元素的实例,并且暴力和正常实例之间的差异没有得到明确的展现。因此,我们认为在暴力、正常和背景实例之间添加对比约束可以有助于对暴力内容进行区分

在初步分析的驱动下,我们提出了一个简单但有效的框架,由模态感知对比实例学习(MA-CIL)和自我蒸馏(SD)模块构成。为了解决模态异步性,我们除了原始的音频-视觉袋之外,还形成了单模态袋,计算单模态logits,并将前K个和后K个单模态实例的嵌入聚类为半袋。为了区分实例,我们提出了一种基于模态感知对比的方法。具体而言,音频和视觉暴力半袋被构造为正对,而暴力半袋与背景和正常半袋中的实例嵌入组装为负对。此外,我们还应用了一个自我蒸馏模块,将单模态知识提炼到音频-视觉模型中,从而缩小模态之间的语义差距,并减轻丰富的跨模态交互引入的数据噪声。总而言之,我们的贡献如下:

  • 我们分析了在音频-视觉场景中广泛使用的多实例学习(MIL)框架中的模态异步性和未区分实例现象,并进一步阐述了它们对弱监督音频-视觉暴力检测的不利影响。
  • 我们提出了一个模态感知的对比实例学习与自我蒸馏框架,以引入特征区分性并减轻模态噪声。
  • 搭载了轻量级网络的我们的框架在XD-Violence数据集上表现优于最先进的方法,而且我们的模型还展现出了作为插件模块的通用性。

2 RELATEDWORKS

2.1 Weakly-Supervised Violence Detection

弱监督的暴力检测需要在视频级别标签下识别具有暴力特征的片段,其中多实例学习(MIL)[38] 框架被广泛用于去除不相关信息的噪声。一些先前的工作 [4, 18, 20, 30, 45, 47, 61, 67, 68] 将暴力检测视为纯粹的视觉任务,并利用基于CNN的网络来编码视觉特征。在这些方法中,提出了各种特征融合和改进方法以增强MIL的鲁棒性。Tian等人 [54] 提出了RTFM,一种强大的时间特征幅度学习方法,以改进对正例的识别能力。Li等人 [33] 设计了基于Transformer [57] 的多序列学习网络,以降低实例选择错误的概率。然而,这些模型忽略了相应的听觉信息以及跨模态交互,从而限制了暴力预测的性能。

最近,吴等人[62]策划了一个大规模的音频-视觉数据集XD-Violence并建立了一个音频-视觉基准。然而,他们以早期融合的方式整合音频和视觉特征,从而限制了进一步的跨模态交互。为了促进多模态融合,庞等人[43]提出了一种基于注意力的网络,以中间方式自适应地整合音频和视觉特征,并带有互学习模块。与先前的方法不同,我们通过一个轻量级的双流网络执行跨模态交互,并通过模态感知的对比和自我蒸馏进行具有辨别力的多模态学习。

2.2 Contrastive Learning

对比学习是通过对比正对和负对来制定的,无需数据监督。在单模态领域,一些视觉方法 [10, 23, 25, 35] 利用对视觉数据的增强作为对比来增加模型的区分性。此外,一些自然语言处理方法利用标记和句子级别的对比来增强预训练模型 [15, 50] 和监督任务 [17, 46] 的性能。对于多模态领域,一些工作引入了模态感知的对比来处理视觉-语言任务,如图像描述 [16, 58]、视觉问答 [9, 60] 和表示学习 [34, 49, 59, 66]。此外,最近的文献 [1, 2, 14, 32, 37, 39, 40, 42] 利用音频-视觉流的时间一致性作为对比的前提任务,以学习稳健的音频-视觉表示。基于现有的实例级对比框架 [12, 63],我们提出了半袋的概念,并利用跨模态对比来获得模型的区分性。

2.3 Cross-Modality Knowledge Distillation

知识蒸馏最初是为了将大规模架构的知识转移到轻量级模型中 [5, 28]。然而,跨模态蒸馏旨在将单模态知识转移到多模态模型中,以减轻模态之间的语义差距。一些方法 [21, 29] 通过幻觉网络将深度特征蒸馏到RGB表示中,以解决模态缺失和噪声现象。陈等人 [13] 提出了一种音频-视觉蒸馏策略,该策略学习组合嵌入,并在语义不相关的模态之间转移知识。最近,多模态知识扩展 [65] 被提出作为一种两阶段蒸馏策略,通过生成伪标签将知识从单模态教师网络转移到多模态学生网络。受到自我蒸馏方法 [6, 8, 11, 19, 52, 64] 的启发,我们提出了参数整合范式,通过两个相似的轻量级网络将视觉知识转移到我们的音频-视觉模型中,从而减少模态噪声,获得稳健的音频-视觉表示。

3 PRELIMINARIES

给定一个音频-视觉视频序列 S = ( S A , S V ) , S= ( S^A, S^V) , S=(SA,SV), 其中 S A S^A SA 是音频通道, S V S^V SV 表示视觉通道,整个序列被划分为 T T T 个不重叠的片段 { s t A , s t V } t = 1 N \{s_t^A,s_t^V\}_{t=1}^N {stA,stV}t=1N。对于一个音频-视觉对 ( s t A , s t V ) (s_t^A,s_t^V) (stA,stV),弱监督暴力检测任务要求通过一个事件相关性标签 y t ∈ { 0 , 1 } y_t\in \{ 0, 1\} yt{0,1} 区分该对是否包含暴力事件,其中 y t = 1 y_t= 1 yt=1 表示当前片段中至少一个模态包含暴力线索。在训练阶段,只有视频级别的标签 y y y 可用于优化。因此,一个常规的方案是利用多实例学习(MIL)过程来满足弱监督。

在MIL框架中,每个视频序列S被视为一个袋子,视频片段 { s t A , s t V } t = 1 N \{s_t^A,s_t^V\}_{t=1}^N {stA,stV}t=1N 被视为实例。然后,通过特定的特征级别/得分级别汇聚方法将实例聚合起来生成视频级别的预测 p p p。在本文中,我们利用 K K K-max激活与平均池化,而不是基于注意力的方法 [41, 53] 和全局池化 [51, 67] 作为聚合函数。具体来说,给定由CNN网络提取的音频和视觉特征 f a , f v f_a, f_v fa,fv,我们使用一个多模态网络生成单模态logits l a , l v l_a, l_v la,lv 和音频-视觉logits l a v l_{av} lav。音频和视觉实例的嵌入被表示为 h a h_a ha h v h_v hv。然后,我们平均 K K K 个最大的logits,并使用sigmoid激活生成视频级别的预测 p p p。由于我们提出的对比学习方法的额外约束,我们定义了单模态袋 B a , B v \mathcal{B}_a, \mathcal{B}_v Ba,Bv。在每个单模态袋中,实例根据其固有特性被聚类到几个半袋 B m , m ∈ { a , v } B_m, m\in\{a,v\} Bm,m{a,v} 中,相应的半袋表示记为 B m , m ∈ { a , v } \mathcal{B}_m, m\in\{a,v\} Bm,m{a,v}

4 METHODOLOGY

我们提出的框架由三个部分组成:一个轻量级的双流网络,模态感知的对比实例学习(MA-CIL)和自我蒸馏(SD)模块。我们框架的示意图如图2所示,具体如下所述。

在这里插入图片描述

图2:我们提出的模态感知对比实例学习与自我蒸馏框架的示意图。我们的方法包括三个部分:轻量级的双流网络、模态感知的对比学习(MA-CIL)和自我蒸馏(SD)模块。将预训练网络提取的音频和视觉特征作为输入,我们设计了一个简单而有效的基于注意力的网络来执行音频-视觉交互。然后,我们使用基于模态感知对比的方法将不同类型的实例聚类到几个半袋中,并进一步获得模型的区分性。最后,我们部署了一个自我蒸馏模块,将视觉知识转移到我们的音频-视觉网络中,旨在减轻模态噪声并缩小单模态和多模态特征之间的语义差距。整个框架以弱监督的方式联合训练,并采用多实例学习(MIL)策略进行优化。

4.1 Two-Stream Network

考虑到先前的方法受到大规模网络参数冗余的影响,我们设计了一个编码器不可知的轻量级架构来实现特征聚合和模态交互。以预训练网络提取的视觉和听觉特征 f v , f a f_v,f_a fv,fa 为输入,我们提出的网络包括三个部分:线性层以保持输入特征的维度相同,跨模态注意力层以执行模态间的交互,以及多实例学习(MIL)模块用于弱监督训练。在这些模块中,跨模态注意力层是从Transformer [57] 的编码器部分改进而来,包括多头自注意力、前馈层、残差连接 [26] 和层归一化 [3]。在原始的自注意力块中,特征分别由三个不同的参数矩阵投影为查询、键和值向量。然后,通过 a t t ( q , k , v ) = s o f t m a x ( q k T d m ) v att(q,k,v)=softmax(\frac{qk^T}{\sqrt{d_m}})v att(q,k,v)=softmax(dm qkT)v 计算缩放点积注意力得分,其中 q , k , v q,k,v q,k,v 表示查询、键和值向量, d m d_m dm 是查询向量的维度, T T T 表示矩阵转置操作。为了加强跨模态交互,我们将自注意力块的键和值向量改为其他模态的特征:
在这里插入图片描述
其中, h a , h v h_a,h_v ha,hv 是更新的音频和视觉特征, W Q , W K , W_Q, W_K, WQ,WK, W V W_V WV 是可学习的参数。我们采用共享参数策略进行特征投影,以减少计算量。

我们在弱监督设置下采用多实例学习(MIL)过程来获得视频级别的分数。与先前的工作不同,我们单独处理单模态特征以减轻模态异步性。具体而言,我们在每个模态中使用全连接层来生成单模态logits。然后,我们将单模态logits的总和作为融合的音频-视觉logits,同时保留单模态logits以用于后续的对比学习。最后,我们对前K个音频-视觉logits进行平均池化,并经过sigmoid激活生成用于优化的视频级别分数。整个过程可以表示为:
在这里插入图片描述

其中, W a , W v , b a , b v W_a,W_v,b_a,b_v Wa,Wv,ba,bv 是可学习的参数, Ω \Omega Ω 表示 K K K-max 激活, σ \sigma σ 表示sigmoid函数, ⊕ \oplus 表示求和操作, Θ \Theta Θ 表示平均池化, p p p 是视频级别的预测。

4.2 MA-CIL

为了利用更多的非相关实例,我们提出了MA-CIL模块,如图2右侧所示。给定嵌入 h a , h v h_a,h_v ha,hv,我们执行无监督聚类将它们分为暴力、正常和背景半袋表示,基于视觉和音频logits。我们认为,语义无关实例之间的差异可以被利用来丰富模型的区分能力。

具体而言,我们首先利用视频级别的概率 p p p 来区分给定视频是否包含暴力事件。在每个小批量中,对于满足 p i > 0.5 p_i>0.5 pi>0.5 的视频序列 S i S_{i} Si,将具有最高logits的前 K K K 个实例聚类为暴力半袋 B m υ i o ( i ) = { h m ( n ) } n = 1 K υ i o , m ∈ { a , v } B_m^{\upsilon io}(i)=\{h_m(n)\}_{n=1}^{K_{\upsilon io}}, m\in\{a,v\} Bmυio(i)={hm(n)}n=1Kυio,m{a,v}。对于满足 p j ≤ 0.5 p_j\leq0.5 pj0.5 的序列 S j S_j Sj,选择前 K K K 个实例作为正常半袋 B m n o r ( j ) = { h m ( n ) } n = 1 K n o r , m ∈ { a , v } B_m^{nor}(j)=\{h_m(n)\}_{n=1}^{K_{nor}}, m\in\{a,v\} Bmnor(j)={hm(n)}n=1Knor,m{a,v}。我们希望对正常事件和暴力事件添加对比,以帮助模型区分所感知信号的暴力程度。

此外,我们认为正常和暴力视频都包含背景片段,学习事件相关片段与背景噪声之间的差异可以有助于定位。因此,我们选择整个小批量中的最低的 K K K 个实例作为背景半袋 B m b g d = { h m ( n ) } n = 1 K b g d , m ∈ { a , v } B_m^{bgd}=\{h_m(n)\}_{n=1}^{K_{bgd}}, m\in\{a,v\} Bmbgd={hm(n)}n=1Kbgd,m{a,v}。在每个小批量中,模型应该将暴力音频-视觉实例与由暴力实例和其他实例(背景和正常实例)构建的负对进行对比。

一种直观的方法是在相反的模态中随机选择半袋内和半袋间的实例作为正对和负对。

然而,我们认为具有不同位置的音频和视觉暴力实例可能在语义上不匹配,例如分别表示暴力事件的开始和结束。因此,假设它们具有相同的含义是不自然的。相反,我们对每个半袋中所有暴力实例的嵌入进行平均池化,并形成一个半袋级别的表示 B m v i o , m ∈ { a , v } B_m^{vio},m\in\{a,v\} Bmvio,m{a,v}。通过这样做,音频和视觉表示都表达了事件级别的语义,从而减轻了噪音问题。为此,我们构建了半袋级别的正对,由音频和视觉暴力半袋表示 B a v i o , B v v i o \mathcal{B}_a^{vio},\mathcal{B}_v^{vio} Bavio,Bvvio 组成。我们还构建了半袋到实例的负对,以保持大量的对比样本,其中暴力半袋表示与相反模态中的背景和正常实例嵌入 h m n o r , h m b g d , m ∈ { a , v } h_m^{nor},h_m^{bgd},m\in\{a,v\} hmnor,hmbgd,m{a,v} 组合成负对。

我们将InfoNCE [55]作为此部分的训练目标,该目标缩小了正对之间的距离,并增大了负对之间的距离。对于音频暴力半袋表示 B a v i o ( i ) B_{a}^{vio}(i) Bavio(i) 与视觉正常实例嵌入 { h U n o r ( n ) } n = 1 K n o r \{ h_{\mathcal{U} }^{nor}( n) \} _{n= 1}^{K_{nor}} {hUnor(n)}n=1Knor 之间的目标可以表示为:
在这里插入图片描述
其中, ϕ \phi ϕ 表示余弦相似度函数, τ \tau τ 是温度超参数, K n o r K_{nor} Knor 表示整个小批量中正常实例的数量。类似地,音频暴力半袋表示 B a v i o ( i ) B_a^{vio}(i) Bavio(i) 与视觉背景实例嵌入 { h v b g d ( n ) } n = 1 K b g d \{h_v^{bgd}(n)\}_{n=1}^{K_{bgd}} {hvbgd(n)}n=1Kbgd 之间的目标可以表示为:
在这里插入图片描述

其中, K b g d K_{bgd} Kbgd 表示整个小批量中背景实例的数量。视觉对音频的对应部分非常相似,因此我们在简洁的写作中省略了这些内容。

4.3 Self-Distillation

前面部分提供的音频-视觉交互可能会引入大量的模态噪声,而模态异步性也会导致在相同时间位置的多模态和单模态特征之间的语义不匹配。为了解决这些问题,我们认为同时训练一个类似的视觉网络可以使模型集成单模态和多模态知识。通过可控的共同蒸馏策略,我们提出的模块确保模态噪声的减少和稳健的模态无关知识。

具体而言,我们提出了一个类似的单模态网络,其架构与我们的双流网络相当。跨模态注意力块被标准的Transformer编码器块替换,包括自注意力机制。在训练过程中,单模态网络以相对较小的学习率进行训练,并且相同层的参数通过指数移动平均策略被注入到音频-视觉网络中:
在这里插入图片描述
其中, θ a v \theta_{av} θav θ v \theta_v θv 分别表示音频-视觉模型和视觉模型的参数, m m m 是控制超参数,遵循余弦调度器,在训练过程中从初始值 m ^ \hat{m} m^ 增加到 1。

4.4 Learning Objective

整个框架采用联合训练的方式进行优化。对于视频级别的预测 p p p,我们利用二元交叉熵 L B \mathcal{L}_{\mathcal{B}} LB 作为训练目标,并使用线性增长策略来控制对比损失的权重。总的目标函数为:
在这里插入图片描述
其中, K v i o K_{vio} Kvio 表示整个小批量中暴力半袋的数量, λ ( t ) \lambda(t) λ(t) 是一个控制器,用于在几个时期内线性增加权重, r r r 表示增长比率, t t t 是当前时期, Λ \Lambda Λ 表示最大权重。

视觉网络通过二元交叉熵损失与视频级别标签进行优化,以提取单模态知识。这两个目标在训练期间同时进行优化,而在推断阶段,仅使用音频-视觉网络进行预测。

5 EXPERIMENT

在这里插入图片描述

消融实验(对每个模块):
在这里插入图片描述

6 CONCLUSION

在这篇论文中,我们调查了在音频-视觉场景下多示例学习(MIL)中的模型不同步和未区分实例现象,并进一步展示了对弱监督音频-视觉学习的影响。然后,我们提出了一种模态感知对比实例学习和自我蒸馏框架来解决这些问题。具体而言,我们设计了一个轻量级的双流网络来生成音频和视觉嵌入和logits。此外,我们对具有不同语义的音频和视觉实例应用了跨模态对比,这涉及更多未使用的实例,以实现更好的区分并减轻模态不一致性。为了减少训练噪声,我们利用自我蒸馏模块将视觉知识转移给音频-视觉网络,从而缩小了单模态和多模态特征之间的语义差距。我们的框架在XD-Violence数据集上的表现优于先前的方法,成本较低。此外,结合我们的对比学习和自我蒸馏模块,几种先前的方法实现了更高的检测精度,表明了作为插件模块改善其他网络的能力。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Yolo-world+Python-OpenCV之摄像头视频实时目标检测

上一次介绍了如何使用最基本的 Yolo-word来做检测,现在我们在加opencv来做个实时检测的例子 基本思路 1、读取离线视频流 2、将视频帧给yolo识别 3、根据识别结果 对视频进行绘制边框、加文字之类的 完整代码如下: import datetimefrom ultralytics …

excel 无法正确处理 1900-03-01 前的日期

问题由来:excel 用公式 TEXT(A1,"yyyy-mm-dd") 转日期时,当A1 的值等于59 的时候,返回值是1900-02-28;当A1 的值等于61 的时候,返回值是1900-03-01;那么当 A1的值为 60 的时候,返回值…

权限管理Ranger详解

文章目录 一、Ranger概述与安装1、Ranger概述1.1 Ranger介绍1.2 Ranger的目标1.3 Ranger支持的框架1.4 Ranger的架构1.5 Ranger的工作原理 2、Ranger安装2.1 创建系统用户和Kerberos主体2.2 数据库环境准备2.3 安装RangerAdmin2.4 启动RangerAdmin 二、Ranger简单使用1、安装 R…

PDF文档电子签名怎么做?

如何确保电子文档的签署具有公信力和法律效力,防止伪造和假冒签名等问题,是电子文档无纸化应用面临的重要挑战。本文将详细介绍PDF文档电子签名的概念、重要性、实施步骤以及相关的法律背景,帮助用户理解并有效应用PDF文档电子签名技术。 1.…

# RAG | Langchain # Langchain RAG:打造Markdown文件的结构化分割解决方案

【文章简介】 在信息技术的现代背景下,高效地处理和分析文本数据对于知识获取和决策支持至关重要。Markdown文件因其易读性和高效性,在文档编写和知识共享中占据了重要地位。然而,传统的文本处理方法往往忽视了Markdown的结构化特性&#xff…

深度学习 Lecture 7 迁移学习、精确率、召回率和F1评分

一、迁移学习(Transfer learning) 用来自不同任务的数据来帮助我解决当前任务。 场景:比如现在我想要识别从0到9度手写数字,但是我没有那么多手写数字的带标签数据。我可以找到一个很大的数据集,比如有一百万张图片的猫、狗、汽…

卷积神经网络的结构组成与解释(详细介绍)

文章目录 前言 1、卷积层 2、激活层 3、BN层 4、池化层 5、FC层(全连接层) 6、损失层 7、Dropout层 8、优化器 9、学习率 10、卷积神经网络的常见结构 前言 卷积神经网络是以卷积层为主的深层网络结构,网络结构包括有卷积层、激活层、BN层、…

专业140+总410+国防科技大学831信号与系统考研经验国防科大电子信息与通信,真题,大纲,参考书。

应群里同学要求,总结一下我自己的复习经历,希望对大家有所借鉴,报考国防科技大学,专业课831信号与系统140,总分410,大家以前一直认为国防科技大学时军校,从而很少关注这所军中清华,现…

【C++】哈希一

这篇博客要说的是哈希算法,哈希又称为散列,它是将存储的值和存储的位置建立起关联关系的一种算法,或者说是一种将任意长度的数据映射为固定长度的输出的算法。 什么意思呢?我们来看一个例子:比如说我们要存储1&#xf…

Github 2024-04-12 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目6TypeScript项目2Cuda项目1C++项目1C项目1HTML项目1Jupyter Notebook项目1JavaScript项目1Python - 100天从新手到大师 创建周期:22…

pytorch 今日小知识3——nn.MaxPool3d 、nn.AdaptiveAvgPool3d、nn.ModuleList

MaxPool3d — PyTorch 2.2 documentation 假设输入维度(1,2,3,4,4) maxpool torch.nn.MaxPool3d(kernel_size(2, 2, 2), stride(2, 2, 2), padding(1, 0, 0))F 维的 kernel_size 为 2,说明在 F 维的覆盖的 frame 数为 2,也就是…

机器学习实验------决策树

第1关:什么是决策树 任务描述 本关任务:根据本节课所学知识完成本关所设置的选择题。 第2关:信息熵与信息增益 任务描述 本关任务:掌握什么是信息增益,完成计算信息增益的程序设计。 import numpy as npdef calcIn…

【机器学习】knn邻近算法解决实际问题

采用kNN算法回答红色字体提出的问题。要求写出算法过程和预测结果。 KNN原理 KNN(K-最近邻)算法是一个简单直观的分类方法。它的核心思想是“物以类聚”,即一个样本的类别通常由其周围最近的几个邻居决定。这里的“最近”是通过计算样本间的…

智能零售:引领购物新时代

智能零售通过整合人工智能、物联网、大数据和机器学习等技术,正在彻底改变传统的购物模式,为消费者和零售商提供前所未有的效率和个性化体验。 智能零售利用消费者数据分析来提供个性化的购物推荐。无论是在线平台或是实体店内,智能系统都能…

RabbitMQ - Spring boot 整合 RabbitMQ

一、RabbitMQ 1、RabbitMQ 使用场景 1.1、服务解耦 假设有这样一个场景, 服务A产生数据, 而服务B,C,D需要这些数据, 那么我们可以在A服务中直接调用B,C,D服务,把数据传递到下游服务即可 但是,随着我们的应用规模不断扩大,会有更多的服务需要A的数据,如果有几十甚至几百个下…

Gitea是一个开源、轻量级的自托管Git解决方案

Gitea介绍 Gitea是一个由Go语言编写的、轻量级的、自托管的Git解决方案,类似于GitHub、GitLab等平台。它是用Go语言编写的开源软件,提供了Git版本控制系统的基本功能,包括代码托管、问题跟踪、代码审查、Wiki等。Gitea的设计目标是简单易用、…

uniapp 当前系统没有安装苹果根证书,是否打开证书目录(打开后依次安装证书

当你遇到这类问题时,说明你也极其的困惑!这就是为啥大抵国内这些货色搞的东西总是不尽人意!连开发者生态都搞不好,就急着吹嘘。 这是官方给的技术说明方案: 恭喜你,当你按照这个搞之后,你的问题…

海外媒体如何发布软文通稿

大舍传媒-带您了解海外发布新潮流 随着全球化的不断深入,越来越多的中国企业开始关注海外市场。为了在国际舞台上树立品牌形象,企业纷纷寻求与海外媒体合作,通过发布软文通稿的方式,传递正面信息,提升品牌知名度。作为…

【ElasticSearch】安装(bug篇)

以下解决办法参考自网友们的分享 1. JDK绑定问题 但其实这样也没有问题,因为内嵌的jdk版本与当前的es版本是适配的 但是,如果内嵌的jdk与当前es不适配,那就要修改配置文件 / 添加环境变量,让es启动的时候能扫描到我们本地的jdk …

2024蓝桥杯每日一题(组合计数)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一:计算系数 试题二:求组合数1 试题三:求组合数2 试题四:杨辉三角形 试题一:计算系数 【题目描述】 给定一个多项式 (axby)k,请…