论文阅读 (90):Proposal-based Multiple Instance Learning (P-MIL, 2023CVPR)

news2024/10/8 12:28:36

文章目录

  • 1 要点
    • 1.1 概述
    • 1.2 一些概念
    • 1.3 主要步骤
  • 2 方法
    • 2.1 候选提案生成
    • 2.2 提案特征提取和分类
      • 2.2.1 周围对比特征提取
      • 2.2.2 分类头
    • 2.3 提案微调
      • 2.3.1 提案完备性评估
      • 2.3.2 实例级秩一致性
    • 2.4 网络训练和推理
      • 2.4.1 网络训练
      • 2.4.2推理
  • 3 实验
    • 3.1 数据集即评估标准
      • 3.1.1 数据集:
      • 3.1.2 评估标准
    • 3.2 实现细节
      • 3.2.1 网络架构
      • 3.2.2 超参数设置

1 要点

1.1 概述

  • 名称:提案多示例学习 (proposal-based multiple instance learning, P-MIL)

  • 背景:弱监督时间动作定位,即仅在视频级标签下定位和识别未修剪视频中的动作。不考虑实例级标签时,已有方法大多使用基于片段的多示例 (S-MIL) 框架。

  • 问题

    1. 如图1(a)所示,测试阶段的目的是将动作提案作为一个整体并打分,而在训练阶段,分类器被训练为给多个片段打分,这样的不一致性将导致次优结果;
    2. 如图1(b)所示,仅通过一个奔跑片段是很难对其归类的,只有通过观察整个动作实例,且使用上下文信息才能判断其具体的归属。
图1:S-MIL的缺点:a) 训练和测试阶段的目标不一致;b) 只观察红色方框中的单一片段时,难以判断其所属类别
  • 算法:提出P-MIL算法以处理以上问题,其同时在训练和测试阶段直接分类候选提案,包含以下三个关键点:

    1. 周围对比特征提取模块 (SCFE):提取有辨别性的短提案
    2. 提案完备性评估模块 (PCE):利用完备性伪标签抑制低质量提案的产生
    3. 实例秩一致性损失 (IRC):利用RGB和FLOW的互补性实验最终预测
  • 数据集

    1. THUMOS14
    2. ActivityNet
  • 代码:https://github.com/RenHuan1999/CVPR2023_P-MIL

1.2 一些概念

  • 提案 (proposal):包括可能的动作序列和背景序列,分别称为动作提案和背景提案。

1.3 主要步骤

  1. 输入RGB视频帧,使用TV-L1将其转换为FLOW帧;
  2. 利用I3D将RGB和FLOW转换为多个特征向量;
  3. 训练S-MIL模型,分别从RGB特征和FLOW中生成提案;
  4. 利用提案和特征向量,生成外内对比特征;
  5. 基于提案获取视频级分类分数;
  6. 使用提案完备性评估获取完备性伪标签和预测的完备性分数;
  7. 训练时,使用实例级秩一致性损失促使RGB和FLOW模式之间分类分数的一致性,额外加入分类损失、系数损失,以及完备性伪标签和完备性分数之间的均方误差。

2 方法

本节主要介绍用于弱监督时间动作定位 (WTAL) 的基于提案的多示例框架 (P-MIL),图2展示了其主要思想。给定一个视频 V \mathbf{V} V,WTAL的目标是预测动作实例的集合 { ( c i , s i , e i , q i ) } i = 1 M p \{(c_i,s_i,e_i,q_i)\}_{i=1}^{M_p} {(ci,si,ei,qi)}i=1Mp,其中 s i s_i si e i e_i ei分别表示第 i i i个动作的起始和结束时间, c i c_i ci q i q_i qi分别表示动作类别和置信分数。

在训练阶段,每个视频 V \mathbf{V} V仅有视频级标签 y ∈ R C \boldsymbol{y}\in\mathbb{R}^C yRC,其中 C C C是动作类别的数量。 y ( j ) = 1 y(j)=1 y(j)=1表示视频中包含当前动作, y ( j ) = 0 y(j)=0 y(j)=0则反之。接下来分别介绍P-MIL的的三个关键步骤:

  1. 候选提案生成;
  2. 提案特征提取和分类;
  3. 提案微调。
图2:(a) P-MIL总体架构,包括候选提案生成、提案特征提取、提案分类以及微调;(b) 周围对比特征提取 (SCFE) 模块:扩展候选提案的边界,然后计算候选提案的外内对比特征;(c) 提案完备性评估 (PCE) 模块:通过计算与所选伪实例的联合交集 (IoU) 来生成完备性伪标签;以及 (d) 实例级秩一致性 (IRC) 损失:增强RGB和FLOW模式之间簇内归一化相对分数之间的一致性。

2.1 候选提案生成

为了生成候选提案,需要训练一个S-MIL模型。首先,每个视频被划分为多个不相交的16帧片段,然后使用预训练特征提取器,例如I3D提取RGB和FLOW模式的片段特征 X S ∈ R T × D \mathbf{X}_S\in\mathbb{R}^{T\times D} XSRT×D,其中 T T T表示视频中的片段数量, D D D表示特征维度。与典型的2分支架构一致,一个类别无关注意力分支用于计算注意力序列 A ∈ R T × 1 \mathbf{A}\in\mathbb{R}^{T\times1} ART×1,一个分类分支用于计算基础类别激活序列 (CAS) S b a s e ∈ R T × ( C + 1 ) \mathbf{S}_{base}\in\mathbf{R}^{T\times (C+1)} SbaseRT×(C+1),其中 C + 1 C+1 C+1表示背景类。通过在时间维度上 S b a s e \mathbf{S}_{base} Sbase A \mathbf{A} A相乘,得到背景抑制CAS S s u p p ∈ R C + 1 \mathbf{S}_{supp}\in\mathbb{R}^{C+1} SsuppRC+1。随后获取视频级分类分数 y ^ b a s e , \hat{\boldsymbol{y}}_{base}, y^base, y ^ s u p p ∈ R C + 1 \hat{\boldsymbol{y}}_{supp}\in\mathbb{R}^{C+1} y^suppRC+1分别由后接softmax的时间top- k k k聚合策略应用于 S b a s e \mathbf{S}_{base} Sbase S s u p p \mathbf{S}_{supp} Ssupp计算得到。

基于此,分类损失计算为:
L c l s = − ∑ c = 1 C + 1 ( y b a s e ( c ) log ⁡ y ^ b a s e ( c ) ) + ( y s u p p ( c ) log ⁡ y ^ s u p p ( c ) ) , (1) \tag{1} \mathcal{L}_{cls}=-\sum_{c=1}^{C+1}\left( \boldsymbol{y}_{base} (c) \log\hat{\boldsymbol{y}}_{base} (c) \right)+\left( \boldsymbol{y}_{supp} (c) \log\hat{\boldsymbol{y}}_{supp} (c) \right), Lcls=c=1C+1(ybase(c)logy^base(c))+(ysupp(c)logy^supp(c)),(1)其中 y b a s e = [ y , 1 ] ∈ R C + 1 \boldsymbol{y}_{base}=[\boldsymbol{y},1]\in\mathbb{R}^{C+1} ybase=[y,1]RC+1 y s u p p = [ y , 0 ] ∈ R C + 1 \boldsymbol{y}_{supp}=[\boldsymbol{y},0]\in\mathbb{R}^{C+1} ysupp=[y,0]RC+1。此外,稀疏损失 L n o r m = 1 T ∑ t = 1 T ∣ A ( t ) ∣ \mathcal{L}_{norm}=\frac{1}{T}\sum_{t=1}^T|\mathbf{A}(t)| Lnorm=T1t=1TA(t)使用,是的注意力序列 A \mathbf{A} A可以专注于关键的前景部分。因此,最终的训练模板损失为:
L t o t a l = L c l s + λ n o r m L n o r m , (2) \tag{2} \mathcal{L}_{total}=\mathcal{L}_{cls}+\lambda_{norm}\mathcal{L}_{norm}, Ltotal=Lcls+λnormLnorm,(2)其中 λ n o r m \lambda_{norm} λnorm是平衡因子。

基于训练的S-MIL模型,我们在 A \mathbf{A} A上应用多个阈值 θ a c t \theta_{act} θact,以生成候选动作提案 P a c t = { ( s i , e i ) } i = 1 M 1 P_{act}=\{ (s_i,e_i) \}_{i=1}^{M_1} Pact={(si,ei)}i=1M1。为了使得P-MIL在训练阶段更好地分离前景和背景,我们使用额外的阈值 θ b k g \theta_{bkg} θbkg来生成背景提案 P b k g = { ( s i , e i ) } i = 1 M 2 P_{bkg}=\{ (s_i,e_i) \}_{i=1}^{M_2} Pbkg={(si,ei)}i=1M2,其中选取 A \mathbf{A} A中取值低于 θ b k g \theta_{bkg} θbkg的部分。最终,训练阶段的候选提案记为:
P = P a c t + P b k g = { ( s i , e i ) } i = 1 M , (3) \tag{3} P=P_{act}+P_{bkg}=\{(s_i,e_i)\}_{i=1}^M, P=Pact+Pbkg={(si,ei)}i=1M,(3)其中 M = M 1 + M 2 M=M_1+M_2 M=M1+M2。注意在推理期间,仅使用动作提案 P a c t P_{act} Pact

2.2 提案特征提取和分类

给定提案 P P P,已有的S-MIL方案使用CAS来计算每个提案的置信分数,例如外内分数 (outer-inner score)。然而,这种间接评分方法将导致次优结果。对此,我们在视频级标签的监督下,直接对候选提案分类,并将它们汇聚为视频级分类分数。

2.2.1 周围对比特征提取

输入提案 P P P,首先提取相应的提案特征 X P ∈ R M × D \mathbf{X}_P\in\mathbb{R}^{M\times D} XPRM×D。因为训练阶段仅有视频级标签引导,模型将促使使用具有辨别性的短提案来最小化分类损失。对此,提出了一个周围对比特征特征 (SCFE) 模块。

给定一个候选提案 P i = ( s i , e i ) P_i=(s_i,e_i) Pi=(si,ei),首先将提案在左右两侧分别延长其长度的 α \alpha α倍,得到三个区域:左、内、右。对于每个区域,使用后接max-pooling的RoIAlign X S \mathbf{X}_S XS上提取 D D D维特征向量,分别表示为 X i l \mathbf{X}_i^l Xil X i n \mathbf{X}_i^n Xin,以及 X i r \mathbf{X}_i^r Xir。一个直观地操作是直接拼接这三个特征并将其传递给全连接层。然后,受AutoLoc启发,我们使用一个更高效的方法来计算外内对比特征
X i = F C ( C a t ( X i n − X . X i n , X i n − X i r ) ) , (4) \tag{4} \mathbf{X}_i=FC(Cat(\mathbf{X}_i^n-\mathbf{X}.\mathbf{X}_i^n,X_i^n-\mathbf{X}_i^r)), Xi=FC(Cat(XinX.Xin,XinXir)),(4)其中Cat表示拼接操作。通过考虑周围信息,辨别性短提案将被有效抑制。

2.2.2 分类头

与S-MIL类似,给定提案特征 X P \mathbf{X}_P XP,一个类别无关注意力分支用于获取注意力权重 A ∈ R M × 1 \mathbf{A}\in\mathbb{R}^{M\times1} ARM×1,其表示每个提案的前景概率。此外,一个分类分支被用于计算提案的基础分类分数 S b a s e ∈ R M × ( C + 1 ) \mathbf{S}_{base}\in\mathbb{R}^{M\times(C+1)} SbaseRM×(C+1)。通过乘以 A \mathbf{A} A,获得背景抑制分类分数 S s u p p ∈ R M × ( C + 1 ) \mathbf{S}_{supp}\in\mathbb{R}^{M\times(C+1)} SsuppRM×(C+1)。最终得到视频级分类分数 y ^ b a s e , \hat{\boldsymbol{y}}_{base}, y^base, y ^ s u p p ∈ R C + 1 \hat{\boldsymbol{y}}_{supp}\in\mathbb{R}^{C+1} y^suppRC+1

2.3 提案微调

2.3.1 提案完备性评估

通过S-MIL方法获得的候选提案可能过于完备,这将包含一些不相关的背景片段。对此,提出了提案完备性评估 (PCE) 模块。对于候选提案,使用注意力权重来选择高置信度提案作为伪实例,然后通过计算这些伪实例的联合交集 (IoU) 来获取每个提案的完备性伪标签

  1. 首先使用阈值 λ ⋅ max ⁡ ( A ) \lambda\cdot\max(\mathbf{A}) λmax(A)来选择高置信度提案的集合 Q Q Q
  2. 采用非极大值抑制 (NMS) 方法,选择具有最高注意力权重的提案作为伪实例。如果该实例在 Q Q Q中存在,则去除 Q Q Q中的同样提案,直至 Q Q Q为空;
  3. 获得伪实例集 G = { ( s i , e i ) } i = 1 N G=\{ (s_i,e_i) \}_{i=1}^N G={(si,ei)}i=1N
  4. 计算候选提案 P P P和伪实例 G G G的IoU,得到 M × N M\times N M×N的IoU矩阵;
  5. N N N所在维度上,使用最大的IoU作为提案的伪标签,最终得到完备性伪标签 q ∈ R M \boldsymbol{q}\in\mathbb{R}^M qRM
  6. 基于 q \boldsymbol{q} q,一个和注意力与分类分支平级的完备性分支被引入,用于计算完备性分数 q ^ ∈ R M \hat{\boldsymbol{q}}\in\mathbb{R}^M q^RM,这将有助于抑制低质量提案的活性。

2.3.2 实例级秩一致性

在测试阶段的NMS过程中,属于同一动作实例的候选提案的相对分数对检测结果有显着影响。为了习得健壮性相对分数,设计了一个实例级秩一致性 (IRC) 损失来利用RGB和FLOW模式之间的互补性:

  1. 首先使用阈值 m e a n ( A ) mean(\mathbf{A}) mean(A)来消除低置信度提案,保留的提案表示为 R R R
  2. 对于 R R R中的每个提案 r r r,那些与它重叠的候选提案被认为是一个簇 Ω r \Omega_r Ωr,其中 ∣ ω r ∣ = N r |\omega_r|=N_r ωr=Nr
  3. 对应于簇的分类分数 S b a s e \mathbf{S}_{base} Sbase分别通过RGB和FLOW模式索引,记为 p r , c R G B p_{r,c}^{RGB} pr,cRGB p r , c F L O W p_{r,c}^{FLOW} pr,cFLOW,其中 c c c表示第 c c c个真实类别;
  4. 簇内的标准化相对分数记为:
    D r , c ∗ = softmax ( p r , c ∗ ) , ∀ ∗ ∈ { R G B , F L O W } . (5) \tag{5} D^*_{r,c}=\text{softmax}(p^*_{r,c}),\forall*\in\{ RGB,FLOW \}. Dr,c=softmax(pr,c),{RGB,FLOW}.(5)
  5. KL散度用于约束RGB和FLOW模式之间的一致性:
    L I R C = 1 ∣ R ∣ ∑ r ∈ R ( KL ⁡ ( D r , c F L O W ∥ D r , c R G B ) + KL ⁡ ( D r , c R G B ∥ D r , c F L O W ) ) , KL ⁡ ( D r , c t ∥ D r , c s ) = − ∑ i = 1 N r D r , c t ( i ) log ⁡ D r , c s ( i ) D r , c t ( i ) (6–7) \tag{6--7} \begin{aligned} \mathcal{L}_{I R C}=\frac{1}{|R|} \sum_{r \in R} & \left(\operatorname{KL}\left(D_{r, c}^{F L O W} \| D_{r, c}^{R G B}\right)\right. \\ & \left.+\operatorname{KL}\left(D_{r, c}^{R G B} \| D_{r, c}^{F L O W}\right)\right), \\ \operatorname{KL}\left(D_{r, c}^t \| D_{r, c}^s\right)= & -\sum_{i=1}^{N_r} D_{r, c}^t(i) \log \frac{D_{r, c}^s(i)}{D_{r, c}^t(i)} \end{aligned} LIRC=R1rRKL(Dr,ctDr,cs)=(KL(Dr,cFLOWDr,cRGB)+KL(Dr,cRGBDr,cFLOW)),i=1NrDr,ct(i)logDr,ct(i)Dr,cs(i)(6–7)利用IRC损失,我们可以抛弃低相关分数的提案,以实现可信检测。

2.4 网络训练和推理

2.4.1 网络训练

在训练阶段,损失函数定义为公式1。此外,在PCE模块,完备性损失定义为完备性伪标签 q \boldsymbol{q} q和预测的完备性分数 q ^ \hat{\boldsymbol{q}} q^之间的均方误差 (MSE):
L c o m p = 1 M ∑ i = 1 M ( q ( i ) − q ^ ( i ) ) 2 . (9) \tag{9} \mathcal{L}_{comp}=\frac{1}{M}\sum_{i=1}^M(\boldsymbol{q}(i)-\hat{\boldsymbol{q}}(i))^2. Lcomp=M1i=1M(q(i)q^(i))2.(9)综上,模型的训练目标为:
L t o t a l = L c l s + λ c o m p L c o m p + λ I R C L I R C , (10) \tag{10} \mathcal{L}_{total}=\mathcal{L}_{cls}+\lambda_{comp}\mathcal{L}_{comp}+\lambda_{IRC}\mathcal{L}_{IRC}, Ltotal=Lcls+λcompLcomp+λIRCLIRC,(10)其中 λ \lambda λ是平衡参数。

2.4.2推理

在测试阶段,首先在视频级分类分数 y ^ s u p p \hat{\boldsymbol{y}}_{supp} y^supp使用阈值 θ c l s \theta_{cls} θcls,以抛弃低于 θ c l s \theta_{cls} θcls的类别。对于余下的类别 c c c,第 i i i个提案的得分记为:
s ( i ) = S s u p p ( i , c ) ∗ q ^ ( i ) . (11) \tag{11} \boldsymbol{s}(i)=\boldsymbol{S}_{supp}(i,c)*\hat{\boldsymbol{q}}(i). s(i)=Ssupp(i,c)q^(i).(11)最后,使用按类别soft-NMS去除重复提案。

3 实验

3.1 数据集即评估标准

3.1.1 数据集:

  1. THUMOS14:包含来自20个类别的200验证视频和213个测试视频。基于已有工作,验证视频将作为训练集;
  2. ActivityNet:包含ActivityNet1.2和ActivityNet1.3两个版本,分别包含100类9682个视频和200类19994个视频。训练集、验证集、测试集的比例分别为2:1:1。基于已有工作,验证集用于评估而不使用测试集。

3.1.2 评估标准

定位性能通过在不同IoU阈值下的平均精度 (mAP) 来评估。

3.2 实现细节

3.2.1 网络架构

  1. 特征提取器:Kinetics-400上训练的I3D网络,提取每个片段为1024维向量;
  2. 光流帧:TV-L1算法从RGB帧上提取;
  3. 类别无关注意力分支:后接sigmoid函数的两个全连接层;
  4. 完备性分支:与类别无关注意力分支类似;
  5. 分类分支:两个全连接层。

3.2.2 超参数设置

  1. 优化器:Adam,器学习率为 5 × 1 0 − 5 5\times10^{-5} 5×105
  2. 批次:10;
  3. 扩展率 α \alpha α:0.25;
  4. RoI大小:左、内、右区域大小分别为2、8、2;
  5. 损失权重: λ c o m p = 20 \lambda_{comp=20} λcomp=20 λ I R C = 2 \lambda_{IRC}=2 λIRC=2
  6. 时间可变参数:早期的注意力权重缺乏可行度,因此损失权重乘以一个时间可变参数,其将被逐步增加至1;
  7. 阈值: θ a c t = [ 0.1 : 0.1 : 0.9 ] \theta_{act}=[0.1:0.1:0.9] θact=[0.1:0.1:0.9] θ b k g = [ 0.3 : 0.2 : 0.7 ] \theta_{bkg}=[0.3:0.2:0.7] θbkg=[0.3:0.2:0.7] θ c l s = 0.2 \theta_{cls}=0.2 θcls=0.2

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

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

相关文章

一线大厂Java 面试题大全1100+ 面试题附答案详解(2023最新整理)

写在前面 今年的面试比往年要难得多,各个互联网企业对于 Java 岗位的要求越来越多,也越来越高,主要是初级岗位已经趋近饱和,但高级岗位又相对来说缺乏,这类的人才偏少,因此作为 Java 开发人员,…

【新星计划回顾】第四篇学习计划-自定义函数、存储过程、随机值知识点

🏆🏆时间过的真快,这是导师回顾新星计划学习的第四篇文章! 最近这段时间非常忙,虽然导师首次参与新星计划活动已经在4月16日圆满结束,早想腾出时间来好好整理活动期间分享的知识点。 🏆&#x1…

【TiDB Future App Hackathon 2023 】TiDB 首届全球黑客马拉松,开发者的狂欢夏日盛会!快来一起 Coding 吧!...

作者: Billmay表妹 原文来源: https://tidb.net/blog/cf364859 2023 TiDB Future App Hackathon 来啦!本届 Hackathon 的主题为:Code, Innovate & Build Amazing Data Applications —— 释放你的创造力、构建突破性的应用…

JS逆向之大众点评mtgsig

本教程仅限于学术探讨,也没有专门针对某个网站而编写,禁止用于非法用途、商业活动、恶意滥用技术等,否则后果自负。观看则同意此约定。如有侵权,请告知删除,谢谢! 目录 前言 一、先分析下接口参数 二、开导…

不懂这个118358-80-8甘露糖丝氨酸?看看Fmoc-Ser(Ac4Manα)-OH的全面解析吧!

Fmoc-Ser(Ac4Manα)-OH,甘露糖丝氨酸Product structure: Product specifications: 1.CAS No:118358-80-8 2.Molecular formula:C32H35NO14 3.Molecular weight:657.63 4.Packaging specification&#xff1…

浅谈响应式网页设计 —— 测试该知道的二三事

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

【LeetCode】每日一题 -- 1240. 铺瓷砖 -- Java Version

题目链接:https://leetcode.cn/problems/tiling-a-rectangle-with-the-fewest-squares/ 1. 题解(1240. 铺瓷砖) 23.05.31 华为机试第二题 1.1 暴力深搜 – DFS NP-Complete 问题 题解参考:Java DFS暴力递归(详细注释&…

LeetCode 2352. Equal Row and Column Pairs【模拟,哈希表,前缀树】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

100G QSFP28光模块类型和使用场景

100G QSFP28光模块是当前数据中心和通信网络中广泛应用的高速光模块之一。本文将详细介绍100G QSFP28光模块的类型、应用场景以及市场发展前景,并引用相关产品参数和行业统计数据,为读者提供全面的了解。 一、100G QSFP28光模块类型 100G QSFP28光模块…

开源 API 网关的访问策略(一)

许多企业和组织面临着网关访问控制的挑战,因为传统的访问控制方法往往过于笨重和繁琐。这些方法可能涉及复杂的规则集、繁琐的手动配置过程、缺乏灵活性和可扩展性等问题。此外,随着云计算和移动设备的广泛应用,访问控制的复杂性和挑战程度也…

stable-diffusion-webui 安装采坑日记

这里写自定义目录标题 安装容易采坑的点效果测试 安装容易采坑的点 1、不愿安装大佬的整合包。在自己时间足够多的情况下,可以尝试自己搭环境。但是自己安装的时间成本真的非常高,环境配置报错会让人陷入崩溃,如果没有代码排错能力&#xff…

sw2urdf导出的urdf文件中的惯性参数(inertial)错误的问题

现象描述 有时候,当我们使用solidworks建好我们的模型,然后利用【sw2urdf】导出后,发现其中的惯性参数,似乎不正确,ixx、izz这些参数都是很接近0的: 资料查找 其实这个不是我们设置的问题,而…

蓝牙耳机什么牌子好?无线蓝牙耳机品牌推荐

相信很多人都有过这样的经历,早晚高峰像沙丁鱼般被挤在公交或地铁上,嘈杂的环境、工作的劳累让你只想听听音乐追追剧,给自己一些放松的时光。可拿出有线耳机却常常被挤掉,更有被扯到耳朵的时候。想换一款蓝牙耳机,但面…

做连接中国企业出海的全球技术桥梁,亚马逊云科技出海日盛夏盛启

出海路漫漫,企业开拓全球市场而孤军奋战,常常会感到力不从心。好的产品有了,渠道有了,供应链有了,还要自己从0-1搭建存储、网络和架构?营销季来了想趁机冲一波销量,还要自己运维本地IDC、大促来…

docker-compose 部署zookeeper集群 —— 筑梦之路

1. zookeeper介绍 Zookeeper是一个开源的分布式协调服务中间件,它提供了一种分布式数据管理服务,能够实现分布式锁、命名服务、配置管理、集群管理等功能,从而帮助用户构建高可用、高性能的分布式系统。以下是Zookeeper的一些主要特点和功能&…

Java注解的入门学习

一、概念 Java注解是一种元数据形式,可以被添加到Java代码中的各种元素(类、方法、字段等)上,以提供关于这些元素的额外信息。注解是在Java 5中引入的一项特性,它们不直接影响代码的执行,而是提供了一种机…

顺序表算法练习

一.顺序表基础算法 1.说明 博主这里是算法练习,帅气的读者来这里默认已经知道了它,这里主要是针对408考研真题中关于线性表的算法题进行编写。第一部分是根据课本编写线性表的基本函数,剩下四个部分是针对考研真题的算法练习。 2.C语言代码…

ChatGLM的模型架构

ChatGLM的部署微调等,很多资料,不再赘述。 P-tuning V2 以P-Turing V2为例,介绍ChatGLM的网络结构。P-tuning V2方法训练时冻结模型的全部参数,只激活prefix_encoder的参数。 1、prefix encoder 初始化pre_len,代表…

Apple pencil平替哪款好?平价电容笔测评

现今,使用电容笔的人越来越多,各大品牌厂商对电容笔各种性能的设计也愈发用心。那么,电容笔哪个品牌好用呢?下面,我来给大家推荐几款质量好的Apple pencil平替,需要的小伙伴可以当个参考。 一、如何挑选到…

Vue3+TS+Vite开发组件库并发布到npm

Vue2开发插件并发布到npm 使用VitePress静态网站生成器创建组件库文档网站并部署到GitHub 目标:创建 vue-amazing-ui 组件库 ,并发布到npm 该组件库已发布到 npm,直接安装即可使用: pnpm i vue-amazing-ui #or yarn add vue-a…