带稀缺注释的动物姿态估计CVPR2023

news2024/11/16 5:39:26

由于缺乏标记数据,动物姿态估计是一项重要但未被充分探索的任务。作者用稀缺的注释(scarce annotation)来处理动物姿态估计,其中只有一小部分标记数据和大部分未标记图像可用。并且,作者提出了ScarceNet,这是一种基于伪标签的方法。伪标签是由一小组标记图像训练的模型生成的,通常是有噪声的,并且当直接用于训练时会损害性能。为了解决这个问题,作者设计了一个loss来选择可靠的伪标签。由于许多高loss样本未被使用,因此进一步提出,从高损失样本中识别可重复使用的样本。重新生成伪标签,为那些可重复使用的样本提供监督。最后,引入了一个师生框架来强制执行一致性约束,因为仍然存在既不可靠也不可重复使用的样本。通过将可靠的伪标签选择与可重复使用的样本重新标记和一致性约束相结合,可以充分利用未标记的数据。作者在具有挑战性的AP-10K数据集上评估了方法,该方法在很大程度上优于现有的半监督方法。另外还在TigDog数据集上进行了测试,在只有极少数注释可用的情况下,该方法可以比基于领域自适应的方法获得更好的性能。

来自:ScarceNet: Animal Pose Estimation with Scarce Annotations

目录

  • 背景概述
  • 相关工作
    • 动物姿态估计
    • 半监督学习
    • 从噪声标签中学习
  • 方法
    • 可靠PL选择
    • 可重复使用的样本重新标记
    • 师生一致性
    • MB-HRNet
    • 强-弱增强
    • 整体
  • 数据集与评价指标

背景概述

理解动物行为是许多生物科学应用的基础。尽管人类姿态估计取得了巨大成功,但由于缺乏标记的动物姿态数据,这些技术无法直接用于动物。现有的工作通过从人类姿态数据或合成动物图像中学习来克服这个问题。然而,真实数据和合成数据之间存在很大的领域差距。例如,由CAD模型生成的合成动物图像仅表现出有限的姿态、外观和背景变化。因此,用合成数据训练的模型不能很好地适应真实图像。此外,合成图像的生成是一个乏味的过程,也需要专家知识。因此,我们是否可以用最少的注释来实现精确的动物姿态估计,为了回答这个问题,作者专注于如何从稀缺的标记数据中学习动物姿态。如图1所示,目标是仅使用一小组标记图像和大量未标记图像来实现精确的动物姿态估计。

fig1

  • 基于稀缺标记的动物姿态估计任务。

数据稀缺问题可以通过半监督学习(SSL,semi-supervised learning)解决。SSL会考虑伪标记(PL,pseudo label),其中从预训练的模型生成的标签与人工标记的数据一起用于训练模型。通过将PL应用于基于领域自适应的动物姿态估计,已经获得了不错的结果。然而,当网络开始以高置信度输出不正确的预测标签时,基于PL的方法会受到影响,这称之为噪声伪标签。为了解决该问题,作者使用small-loss trick来选择可靠的伪标签,即具有小loss的样本来更新网络。


small-loss trick基于深度网络的记忆效应:在深度网络中,网络首先从干净和简单的实例中学习,然后最终过度适应有噪声的实例。因此,与训练开始时的噪声样本相比,干净样本表现出更小的损失。尽管small-loss技巧在选择可靠的伪标签方面是有效的,但它会浪费数据,因为许多high-loss样本被闲置了。


作者提出了ScarceNet,这是一种基于PL的方法,用于从稀缺的注释中学习动物姿态。首先在小规模的标记数据集上训练动物姿态估计网络,然后用预训练的模型为未标记的图像生成伪标签。由于训练数据的小规模,伪标签经常被噪声破坏。因此,作者使用small-loss技巧来选择可靠的伪标签。此外,作者提出基于一致性检查从high-loss样本中识别可重复使用的样本。一致性检查是为了保证可重复使用样本的模型预测是平滑的,同时远离决策边界,因此允许用模型预测直接重新标记可重复使用的样本。最后,引入了一个师生网络,并强制执行一致性约束,因为仍然存在既不可靠也不可重复使用的样本。通过将可靠的伪标签选择与可重复使用的样本重新标记和一致性约束相结合,可以充分利用未标记的数据。

相关工作

动物姿态估计

动物姿态估计(包括2D和3D数据)近年来已经成为一个活跃的研究领域。由于缺乏像COCO这样的大规模动物姿态数据集,动物姿态估计技术的发展相对较慢。现有工作通过转移其他领域的知识来规避对动物姿态数据的要求,如人类姿态数据和合成动物数据。

尽管人类姿态估计已经取得了令人印象深刻的结果,但仍需要大量的标记动物图像来促进知识转移。这是由于人类和动物图像之间存在较大的领域差距,包括姿态本身,外观和身体结构的差异。为了减少源域和目标域之间的gap,研究人员从CAD模型中生成合成动物图像,并将其用作标记数据。

在合成图像数据集的基础上,Li等人提出了一种伪标签更新策略,以防止网络过拟合有噪声的伪标签。尽管通过使用合成动物图像减少了领域差距,但CAD模型的有限姿态和外观变化阻碍了基于合成数据的方法适应到真实场景。此外,合成逼真的图像是一个繁琐的过程,也需要专家知识。因此,作者提出专注于从真实图像稀缺的注释中学习,以最大限度地减少人力劳动,同时实现准确的动物姿势估计。

半监督学习

当标记数据有限时,半监督学习在利用未标记数据来提高模型性能方面非常有效。最广泛使用的SSL技术之一是PL(pseudo label)。

另一种技术是一致性正则化(consistency regularization),它强制要求当输入被随机扰动时,模型输出应该是一致的。MixMatch将一致性正则化与熵最小化相结合,以鼓励网络输出对未标记数据的置信预测。

最近的无监督数据增强(UDA)和FixMatch将PL、一致性正则化与数据增强相结合,实现了卓越的性能。鉴于其有效性,作者也采用了基于PL的技术。为了减轻噪声伪标签的负面影响,作者将PL与可靠的伪标签选择和可重复使用的样本进行了结合。

从噪声标签中学习

从噪声标签中学习已经成为一项重要任务,因为众所周知深度神经网络容易受到噪声标签的影响。为了减少噪声标签的负面影响,人们提出了三类方法:

  • 第一类是将真实标签视为隐变量,并使用额外的网络来估计噪声转移矩阵。这些方法假设损坏的标签和干净的标签之间存在相关性,因此无法处理具有随机噪声的复杂情况。
  • 第二类是设计噪声鲁棒损失函数,如广义交叉熵和对称交叉熵。基于鲁棒损失的方法理论上是合理的,但可能只能处理一定模式的噪声。
  • 最后一类侧重于选择潜在的干净样本来更新网络。一个很有前途的选择标准是small-loss技巧,它是基于深度网络的记忆效应设计的,已广泛应用于不同的任务。

作者应用small-loss技巧来选择可靠的伪标签。然而,没有像以前的工作那样忽略high-loss样本,而是将样本选择与可重复使用的样本重新结合,以充分利用未标记数据。

方法

ScarceNet的框架如图2的左侧所示,作者提出了一个multi-branch HRNet(MBHRNet)作为动物姿态估计网络。将输入图像表示为 x x x,将其真实动物姿态表示为 y y y。给定一个small labeled set D l = { x i l , y i l } i = 1 N l D_{l}=\left\{x_{i}^{l},y_{i}^{l}\right\}_{i=1}^{N_{l}} Dl={xil,yil}i=1Nl和 unlabeled set D u = { x i u } i = 1 N u D_{u}=\left\{x_{i}^{u}\right\}_{i=1}^{N_{u}} Du={xiu}i=1Nu。目的是通过利用标记和未标记的数据来训练动物姿态估计网络。

利用GT姿态数据来监督。然后,使用在未标记图像生成伪标签。然而,这些生成的伪标签通常被噪声严重破坏,尤其是当标记的数据非常有限时。因此,用small-loss技巧来选择一组可靠的伪标签。尽管它很有效,但通过small-loss技巧的伪标签选择往往会丢弃大量high-loss样本,这导致了高浪费,因为那些被丢弃的样本仍然可以提供额外的信息来更好地进行判别学习。鉴于此,作者提出了一个可重复使用的样本重新标记步骤。最后,设计了一个师生框架,以加强学生和教师网络输出之间的一致性。

fig2

  • 图2:左侧部分显示了ScarceNet的框架,其中 P P P T T T分别表示强增强和弱增强。右侧部分显示了HRNet(顶部)和MBHRNet(底部)之间的比较,其中FE表示特征提取器,conv表示卷积层,JFE表示联合特定特征提取器。

可靠PL选择

首先在有标签数据上训练: L s = 1 J ∑ i = 1 J ∣ ∣ H i − H ^ i ∣ ∣ 2 L_{s}=\frac{1}{J}\sum_{i=1}^{J}||H_{i}-\widehat{H}_{i}||^{2} Ls=J1i=1J∣∣HiH i2其中, H i H_{i} Hi为GT heatmap, J J J表示joints的总数, H ^ i \widehat{H}_{i} H i为预测的heatmap。然后,通过该网络在无标签数据上生成PL。生成的伪标签通常是有噪声的,如果直接用于训练,会影响性能。为了防止这种情况,使用small-loss技巧从初始伪标签中选择可靠的伪标签,表示为 S S S。具体来说,只使用loss小于阈值的样本来更新网络。从形式上讲,这可以表示为: L p = ∑ i = 1 J { L p i < l r } 1 L p i ∑ i = 1 J { L p i < l r } 1 ,   L p i = ∣ ∣ H ~ i − H ^ i ∣ ∣ 2 L_{p}=\frac{\sum_{i=1}^{J}\left\{L_{p}^{i}<l_{r}\right\}_{1}L_{p}^{i}}{\sum_{i=1}^{J}\left\{L_{p}^{i}<l_{r}\right\}_{1}},\thinspace L_{p}^{i}=||\widetilde{H}_{i}-\widehat{H}_{i}||^{2} Lp=i=1J{Lpi<lr}1i=1J{Lpi<lr}1Lpi,Lpi=∣∣H iH i2其中, H ~ i \widetilde{H}_{i} H i表示第 i i i个joint的PL, L p i L_{p}^{i} Lpi是相应的基于PL的loss。 { c o n d i t i o n } 1 \left\{condition\right\}_{1} {condition}1是一个条件函数,当条件为true时输出1,如果条件为false则输出0。 l r l_r lr表示loss阈值。

可重复使用的样本重新标记

作者提出从未使用的样本中进一步识别可重复使用的样本,表示为 U U U,以充分利用未标记的数据。将可重复使用的样本定义为尽管loss很大,但也可以为网络提供可靠知识的样本。为了识别可重复使用的样本,作者引入了agreement check。具体来说,在给定输入 x u x^u xu的情况下,通过添加由旋转和缩放组成的随机变换 T T T来生成该样本的另一个视图。两个样本都被送到姿态估计网络中,以产生相应的heatmap,表示为: H V 1 = f ( x u ) , H V 2 = f ( T x u ) H^{V_{1}}=f(x^{u}),H^{V_{2}}=f(Tx^{u}) HV1=f(xu),HV2=f(Txu) i i i个joint的位置是通过对相应的输出heatmap应用argmax运算来获得的: h i V 1 = a r g m a x ( H i V 1 ) , h i V 2 = a r g m a x ( H i V 2 ) h_{i}^{V_{1}}=argmax(H_{i}^{V_{1}}),h_{i}^{V_{2}}=argmax(H_{i}^{V_{2}}) hiV1=argmax(HiV1),hiV2=argmax(HiV2)与分类任务不同,输出joint位置是 T T T等变的(分类任务是 T T T不变的)。因此,需要在agreement check前转换 h i V 1 h_{i}^{V_{1}} hiV1 d i = ∣ ∣ T h i V 1 − h i V 2 ∣ ∣ 2 d_{i}=||Th_{i}^{V_{1}}-h_{i}^{V_{2}}||^{2} di=∣∣ThiV1hiV22这可以根据两个视图的输出之间的距离来确定样本是否可重复使用。具体来说,当距离满足 d i < d r d_i<d_r didr时,样本 x i u x^{u}_{i} xiu是可重用的,其中 d r d_r dr表示距离阈值。这种一致性检查基于一致性最大化原则,该原则也用于分布外检测和稳定样本选择。直观地说,可重用样本必须满足模型预测邻域的平滑性,并且必须远离决策边界。否则,当输入被随机变换时,输出会变得不一致。

下一步是重新标记已识别的可重复使用的样本,注意它们在初始伪标签的基础上表现出很大的损失。作者直接使用来自当前模型的预测作为新的伪标签来训练网络。动机有两个:

  • 模型是用未标记的图像训练的,因此与仅在标记的图像上训练的模型相比,它能够输出更准确的预测。
  • 可重复使用样本的选择标准表明当前的模型预测已经是可靠的。最后,可重复使用样本的损失函数可以定义为: L r = ∑ i = 1 J { d i < d r } 1 L r i ∑ i = 1 J { d i < d r } 1 ,   L r i = ∣ ∣ H ‾ i − H ^ i ∣ ∣ 2 L_{r}=\frac{\sum_{i=1}^{J}\left\{d_{i}<d_{r}\right\}_{1}L_{r}^{i}}{\sum_{i=1}^{J}\left\{d_{i}<d_{r}\right\}_{1}},\thinspace L_{r}^{i}=||\overline{H}_{i}-\widehat{H}_{i}||^{2} Lr=i=1J{di<dr}1i=1J{di<dr}1Lri,Lri=∣∣HiH i2其中, H ‾ i \overline{H}_{i} Hi表示根据当前模型预测的joint位置生成的heatmap。通过选择可重复使用的样本,我们能够利用更多的未标记图像,同时防止网络过拟合噪声伪标签。

师生一致性

可靠的伪标签选择和可重复使用的样本选择都是基于特定的约束条件。不满足这两个约束的样本仍处于未使用状态。鉴于此,进一步引入教师网络,并加强学生和教师网络之间的一致性。这是受平均教师框架(mean teacher)的启发,该框架对半监督分类的未标记数据强制执行一致性约束。

教师网络与学生网络共享相同的结构,并使用学生网络的指数移动平均值(EMA)更新权重: θ m t t = α θ m t t − 1 + ( 1 − α ) θ t \theta_{mt}^{t}=\alpha\theta_{mt}^{t-1}+(1-\alpha)\theta^{t} θmtt=αθmtt1+(1α)θt其中, θ m t \theta_{mt} θmt θ \theta θ分别表示教师网络和学生网络的权重。上标 t t t表示training step, α α α是EMA更新的平滑系数。可以看到,教师网络是网络的集合,因此它可以提供更准确的伪标签。如图2所示,将随机扰动 P P P添加到学生网络的输入中,包括基于几何的扰动 P g P_g Pg(如旋转、缩放和翻转)和基于图像的扰动 P m P_m Pm(如噪声、遮挡和模糊),然后,教师和学生网络之间的一致性被强制执行为: L t = 1 J ∑ i = 1 J ∣ ∣ P g H i t − H ^ i ∣ ∣ 2 L_{t}=\frac{1}{J}\sum_{i=1}^{J}||P_{g}H_{i}^{t}-\widehat{H}_{i}||^{2} Lt=J1i=1J∣∣PgHitH i2其中, H i t H_{i}^{t} Hit为teacher的输出,注意,只有基于几何的扰动 P g P_g Pg被添加到教师网络的输出,因为输出joint的位置对于基于图像的扰动是不变的。

MB-HRNet

作者采用人体姿态估计网络HRNet作为主干。HRNet通过将高分辨率特征表示与多分辨率特征融合相结合,在人体姿态估计方面取得了最先进的性能。然而,如图2的右上部分所示,HRNet的最终热图是从具有一个线性层的共享特征表示回归的。在存在噪声标签的情况下,这种共享机制可能会产生负面影响。例如,当任何关节的伪标签有噪声时,特征表示会受到反向传播的影响,从而进一步影响同一图像中其他关节的预测。为了缓解这个问题,作者在HRNet中引入了多分支头,以学习每个关节的特定特征表示。如图2的右下部分所示,网络具有 J J J个输出分支,其中每个分支通过关节特定特征提取器(JFE)学习特定特征表示,以回归相应的关节位置。通过这种方式,关节的噪声伪标签的不利影响在其各自的分支中被削弱。

强-弱增强

作者还引入了一种强-弱增强训练方案,其中将两组增强应用于输入,在前几节中表示为 T T T P P P。特别地,将强增强 P P P应用于具有反向传播的学习任务,将弱增强 T T T应用于重新标记任务。如图2所示,将强增强应用于蓝色路径中的标记图像和橙色路径中的未标记图像。这两条路径负责更新网络,因此强增强可以提高泛化能力。相比之下,弱增强被应用于绿色路径,因为该路径负责识别和重新标记可重复使用的样本。 P P P可能会对agreement check过程产生影响,因为强增强往往会导致不一致的预测。

整体

分两个阶段训练网络。在第一阶段,在 D l D_l Dl上训练MB-HRNet。应用经过训练的网络为未标记的数据生成伪标签。在第二阶段,用预训练的模型初始化学生网络,并用 D l D_l Dl D u D_u Du进行训练。第二阶段的目标函数由上述标记和未标记的损失组成。

数据集与评价指标

在AP-10K数据集和TigDog数据集上评估方法。AP-10K数据集是最近提出的一个动物姿态数据集,它包含了比以前的数据集更多样化的动物物种。该数据集总共包含10015张标记图像,这些图像分为训练集、验证集和测试集。TigDog数据集包括8380张马类图像和6523张老虎类图像。该数据集用于多个领域自适应工作。

采用平均精度(mAP)作为AP-10K数据集的评估指标。正确关键点百分比(PCK,Percentage of Correct Keypoints)用于TigDog数据集,它计算到GT位置的归一化距离内的joint百分比。

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

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

相关文章

Presto

Presto Presto基本介绍 前言 Presto是一款Facebook开源的MPP架构的OLAP查询引擎&#xff0c;可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎。因为工作中接触到Presto&#xff0c;研究它对理解SQL Parser、常见算子的实现&#xff08;如SQL中table scan,join,agg…

MySQL行锁、表锁间隙锁

事务隔离级别的实现原理&#xff1a;锁MVCC 表级锁&行级锁 表级锁&#xff1a;对整张表加锁。开销小&#xff0c;加锁快&#xff0c;不会出现死锁&#xff1b;锁粒度大&#xff0c;发生锁冲突的概率高&#xff0c;并发度低。 行级锁&#xff1a;对某行记录加锁。开销大&a…

论 spring 的三级缓存

论 spring 的三级缓存 预备知识 bean的生命周期 bean 的生命周期 为何会出现循环引用 这个问题只是出现在spring 容器的机制中&#xff0c;其实我们代码中很简单就解决了。 假设A 对象里需要注入一个B属性&#xff0c;B 对象里面需要注入一个A 属性。根据Bean 的生命周期&…

【原创】运维工程师涨薪计划,chatGPT帮你做规划

文章目录 1、运维工程师怎么涨薪呢&#xff1f;a&#xff09;加大深度b&#xff09;加大广度 2、运维工程师何处去呢&#xff1f;3、chatGPT告诉你3年、5年、10年运维和开发的现状&#xff1b;有运维经验的工程师&#xff0c;搞开发好吗薪资会有显著提升吗以数据证明&#xff0…

校园食堂明厨亮灶AI分析系统 yolov5

校园食堂明厨亮灶AI分析系统通过yolov5网络模型技术&#xff0c;校园食堂明厨亮灶监控分析模型算法针对校园餐厅后厨不按要求戴口罩、不穿厨师帽、陌生人员进入后厨、厨师不穿厨师服、上班时间玩手机、老鼠识别等行为自动识别抓拍告警。Yolo算法&#xff0c;其全称是You Only L…

电脑缺少msvcp140.dll怎么办,缺少msvcp140一键修复方法

电脑缺少msvcp140.dll怎么办&#xff1f;这个问题相信不少小伙伴都遇到过&#xff0c;msvcp140.dll文件是很多软件跟游戏运行必须用到的文件&#xff0c;如果丢失或者损坏&#xff0c;很多软件都会无法打开运行。其实知道知道方法&#xff0c;修复起来其实也不会很难&#xff0…

ModelViewSet额外路由参数 与 ADMIN事件触发

ModelViewSet额外路由参数 用了DefaultRouter&#xff0c;那么在URL匹配时带路径参数&#xff0c;只有update、delete、retrieve能带&#xff0c;关键是匹配pk还是写死的&#xff0c;我们需要对任意参数&#xff0c;同时还能修改方法命名。 咋搞&#xff1f;很简单。比如我们…

JS案例:前端Iframe及Worker通信解决思路

目录 前言 Iframe通信 Worker通信 实现思路 实现过程 MessageCenter类 IPC类 Server类 Client类 PeerToPeer 功能演示 基础功能 父子通信 兄弟通信 父子兄弟通信 其他功能 函数调用 索引标识 卸载页面 重置页面 批量执行 批量操作 总结 前言 在前端开发…

虚拟机VMware Tools安装步骤

Vmware tools是虚拟机中一款超级增强工具&#xff0c;可以让我们更加方便使用虚拟机&#xff0c;能实现主机与虚拟机之间的文件共享&#xff0c;这篇文章主要介绍了虚拟机VMware Tools安装步骤,需要的朋友可以参考下 本人安装VMware Tools 的需求是 在Linux虚拟机和我的Windo…

Linux学习记录——이십삼 进程信号(2)

文章目录 1、可重入函数2、volatile关键字3、如何理解编译器的优化4、SIGCHLD信号 1、可重入函数 两个执行流都执行一个函数时&#xff0c;这个函数就被重入了。比如同一个函数insert&#xff0c;在main中执行时&#xff0c;这个进程时间片到了&#xff0c;嵌入了内核&#xf…

博客系统 —— Servlet 实现(前后端分离)(详细+整体代码+效果图)

目录 一、项目效果展示 二、创建 Servlet 项目 三、编写数据库的操作代码 1、创建数据库/表结构&#xff08;数据库设计&#xff09;&#xff08;Model&#xff09; 2、封装数据库操作&#xff08;Model&#xff09; &#xff08;1&#xff09;先创建 DBUtil 封装数据库连…

Etsy总是不出单怎么办?出单后怎么操作?

如果您在Etsy上总是无法出单&#xff0c;可以尝试以下几个步骤&#xff1a; 1、检查您的商品列表是否符合Etsy的要求&#xff0c;包括商品描述、价格、运费等信息是否准确无误。 2、确认您的账户信息是否完整&#xff0c;包括银行账户、信用卡信息等。 3、检查您的店铺设置是否…

socket API的使用+client/server代码演示+封装socket模块

前言&#xff1a;本章旨在讲解常见的socket API及其使用练习&#xff0c;尾部有封装好的&#xff08;socket相关的一些系统函数加上错误处理代码包装成新的函数&#xff09;模块wrap.c 目录 一、socket模型创建流程图 1&#xff09;socket函数 2&#xff09;bind函数 3&am…

Altium软件中相同模块布局布线的方法

文章目录 1、原理图设计1、绘制xxx.SchDoc&#xff0c;并设置port。具体方法&#xff1a;Place→Port。2、新建顶层原理图&#xff1a;可以命名为xxx_TOP3、repeat 原理图&#xff0c;将这里从XXX_SingleDut 改为 Repeat(S,1,12)4、以总线的方式出线&#xff0c;如下&#xff1…

网络安全CVE 漏洞分析及复现

漏洞详情 Shiro 在路径控制的时候&#xff0c;未能对传入的 url 编码进行 decode 解码&#xff0c;导致攻击者可以绕过过滤器&#xff0c;访问被过滤的路径。 漏洞影响版本 Shiro 1.0.0-incubating 对应 Maven Repo 里面也有 【一一帮助安全学习&#xff0c;所有资源获取一一…

NetBackup 10.2 新功能介绍:PostgreSQL 和 MySQL 自动化恢复达成

NetBackup 10.2 新功能介绍&#xff1a;PostgreSQL 和 MySQL 自动化恢复达成 原文来自&#xff1a;VERITAS 中文社区 2023-04-27 在执行恢复任务时&#xff0c;手动提取、更新数据库和实例并将其附加到 PostgreSQL 和 MySQL 是常规操作。而在最新的 NetBackup 10.2 版本中&am…

数据可视化工具 - ECharts以及柱状图的编写

1 快速上手 引入echarts 插件文件到html页面中 <head><meta charset"utf-8"/><title>ECharts</title><!-- step1 引入刚刚下载的 ECharts 文件 --><script src"./echarts.js"></script> </head>准备一个…

apc-service-bus项目Docker镜像发布

apc-service-bus项目Docker镜像发布 1. 提交代码到Gitee代码仓&#xff0c;通过建木将项目打包到服务器 1.1 可直接打开访问建木&#xff0c;无有不熟悉建木发布流程的请咨询其他同事或者自行研究 建木地址&#xff1a;http://10.11.148.21/ 1.2 找到bus的开发环境部署执行…

神经网络全连接层数学推导

全连接层分析 对于神经网络为什么都能产生很好的效果虽然其是一个黑盒&#xff0c;但是我们也可以对其中的一些数学推导有一定的了解。 数学背景 目标函数为 f ∣ ∣ m a x ( X W , 0 ) − Y ∣ ∣ F 2 &#xff0c;求 ∂ f ∂ W , ∂ f ∂ X , ∂ f ∂ Y 目标函数为f ||ma…

SpringBoot项目如何打包成exe应用程序

准备 准备工作&#xff1a; 一个jar包&#xff0c;没有bug能正常启动的jar包 exe4j&#xff0c;一个将jar转换成exe的工具 链接: https://pan.baidu.com/s/1m1qA31Z8MEcWWkp9qe8AiA 提取码: f1wt inno setup&#xff0c;一个将依赖和exe一起打成一个安装程序的工具 链接:…