Task-balanced distillation for object detection用于

Task-balanced distillation for object detection用于目标检测的任务平衡蒸馏

摘要

主流的目标检测器通常由分类和回归两个子任务组成,由两个并行头部实现。这种经典的设计范式不可避免的导致分类得分和定位质量(IOU)之间的空间分布不一致。因此,本文从知识蒸馏的角度缓解了这种偏差。首先,我们观察到,与轻量级学生相比,大的教师实现了更高比例的和谐预测基于这一有趣的观察,设计了一个新的和谐分数来估计分数和回归质量的一致性HS对两个子任务之间的关系进行建模,并被视为促进学生和谐预测的先验知识。其次,这种空间错位会导致特征提取时区域选择不协调。为了解决这一问题,通过灵活地平衡分类和回归任务的共线,提出了一种任务解耦特征蒸馏(TFD)方法。其中,HD和TFD构成了所提出的方法,称为任务平衡蒸馏(TBD)。大量的实验证明了该方法的巨大潜力和推广价值。

介绍

为了生成目标的位置坐标和相应的标签,现代目标检测通常采用多任务管道,该管道由两个并行头实现的分类和回归分支组成。然而,这种并行实现可能导致分类分数和回归质量(IOU)的分布不一致。如图1最上面的子图显示,vanilla RetinaNet输出人与摩托车重叠的不一致预测。

image-20240314190638226

具体来说,绿色候选包含高分但低IOU,而橙色候选具有准确的bbox但得分低。当执行后处理(比如NMS)时,由于分类分数是NMS排名的一般标准,因此将保留得分较高的绿色分数(IOU低的)。因此具有准确bbox(橙色)的预测可能被错误地过滤掉。一般来说,这种不正确地过滤可以归结为分类精度和定位精度之间的分布不一致

先前的研究试图通过三种方式来克服这一问题,包括通过添加额外的头部(即IOUNet.Centerness)来重新组合NMS分数,关注一致区域,以及增强分类和回归任务之间的依赖关系以输出更和谐的预测。虽然这些研究在减轻空间分布不一致的影响方面取得了显著进展,但其动机和解决办法都来源于探测器本身。为了引出所提出的方法,我们仔细比较了教师和学生模型在处理这种情况时的行为不和谐分布。有价值的观察结果如下。一般来说,教师比学生更倾向于做出和谐的预测。我们计算易分类预测的IOU分布,如表1所示。

image-20240314192421216

总的来说,教师模型在实现高度一致的预测方面表现优异,同时保持较少的不协调预测。这一观察表明由于分类和回归质量的不同分布,一些容易分类的样本可能会对学生产生不准确的位置(例如,图1中出现的摩托车)。因此,一个有意义的问题是,在教师模型的帮助下,学生是否可以产生更和谐的预测。

此外,我们观察到两个子任务的不协调分布将影响提取特征时实质性区域的选择。由于在目标检测中,前景像素远小于背景像素,因此在将中间特征从教师传递给学生时,如何选择重要区域是一条有意义的路线先前的工作试图通过使用分类分支的预测来生成空间掩模来表示有意义的区域。该分类感知掩码用作空间权重,在传递中间特征时调整每个位置的贡献,如图(1)所示:
L o s s f e a t = ∑ i = 1 W ∑ j = 1 H M i , j c l s × ( F i , j t − F i , j s ) 2 Loss_{feat} = \sum _{i=1}^W \sum _{j=1}^H M_{i,j}^{cls} \times (F_{i,j}^t - F_{i,j}^s)^2 Lossfeat=i=1Wj=1HMi,jcls×(Fi,jtFi,js)2
image-20240314194425136表示分类感知掩码 ,image-20240314194435929表示教师和学生的特征。考虑到分类和定位之间的不协调分布,单纯利用分类信息可能会导致次优的区域选择。因此,另一个关键问题是,能否充分利用分类和定位信息来指导特征模仿是另一个关键问题

设计了一个新的和谐蒸馏(HD)组件来实现和谐预测的转换。首先定义和谐分数(HS),定量描述分类分值的偏差和相应的回归质量。特别是,HS越大意味着分类得分与回归质量正相关,反之亦然。其次,通过对师生模型的HS进行比对,推导出HD。**提出的HD提供了先验知识,对分类和回归之间的关系进行建模,以帮助为学生生成高质量的预测。**如表1所示,与以往基于蒸馏的方法不同,本文提出的HD的和谐预测比例显著提高,甚至超过了教师。

为了实现有效的特征模仿,一个新的任务解耦特征蒸馏(TFD)来整合分类和回归任务的信息首先利用相应的预测得到分类感知掩码和定位感知掩码此外,我们提出了一个任务协同权重生成(TWG)模块来平衡分类和回归任务的贡献,而不是讲这些掩码与启发式权重方案相结合。具体来说,TWG根据教师和学生的预测动态分配任务感知权重。

提出的TBD由上述HD和TFD组成,共同考虑了分类和定位的特性。

贡献

首先定义了一个新的和谐分数(HS)来捕捉分类质量和回归质量之间的关系。然后提出了一种新的和谐蒸馏(HD)来帮助学生生成和谐预测。

设计了一种新的任务解耦特征蒸馏(TFD)来模拟中间特征。通过平衡这两个任务的贡献,将分类掩模和回归掩模综合起来。

相关工作

和谐预测

不和谐预测的内容最初来源于文献[8],即分类和定位精度不一致的预测边界框。这种偏差使非最大值抑制(NMS)过程不可靠,因为NMS只只使用分类分数作为对proposal进行排序的度量,从而导致不准确的抑制。为了缓解这一问题,之前的研究[3,5,8-11]试图使预测更加和谐。解决这一问题的途径可以分为三类,包括重新制定排名指标,关注和谐区域,以及增强分类和定位任务的依赖关系。IOUNet利用额外的头部预测本地化感知分数,并重新定制NMS得分,以更加关注本地化任务。这一范式在FCOS和DIR等后续研究中得到推广。此外,FCOS基于观察到GT的中心区域通常具有较高的分类和回归精度,提出了一种定心采样策略。与这些方法不同,GFL将IOU纳入分类标签。TOOD提出了一种新的带有任务对齐学习的(TAL)的T-head,以增强分类任务和回归任务之间的交互性。HarmonicDet从损失函数提取的角度提高了预测一致性。

与以前的工作不同,本文提出的方法从知识蒸馏的角度产生和谐预测。我们首先定义和谐分数(HS)来捕捉分类分数和定位IOU之间的和谐关系。然后。教师模型的HS被视为先验知识,并最终在拟议的HD的监督下转移学生。

面向检测的知识蒸馏

知识蒸馏最初被Hinton等人提出,对繁琐的模型进行压缩,在图像分类方面取得了显著进展。现有的基于KD的方法大致可以分为基于响应的方法、基于特征的方法和基于关系的方法。此后,KD越来越多的应用于目标检测任务,取得了显著的改进。与图像分类任务相比,由于用于目标检测的图像通常包含大量背景像素,因此基于检测的知识蒸馏的技术路线之一是选择合适的蒸馏区域。Mimicking模拟了教师和学生proposal之间的特征差异。FGFI生成,靠近ground truth的区域应被视为关键的蒸馏区域。GID基于预测定义地理信息系统,并以实例方式提出蒸馏。Defeat 证实前景和北京区域都是有价值的,然后提出了一种空间解耦的蒸馏来实现特征模仿。PFI和FRS利用分类分数提出了一种预测导向的蒸馏方法。FGD进一步将空间和通道维度上的特征模仿解耦。PGD利用一级检测器的蒸馏头设计了一种预测导向的蒸馏管道。MGD试图将特征模仿修改为特征生成范式,并取得了令人印象深刻的效果。HEAD通过设计辅助模型致力于异构目标检测器的蒸馏。

TFD与上述的主要区别如下。我们从不和谐任务分布的角度重新审视有价值特征区域的选择。特别是,分类感知区域和定位感知区域都被认为是有价值的区域。此外,还提出了TWG模块来动态分配权重以平衡这两个任务的贡献。

所提出的方法

本节系统地阐述了TBD的总体架构。如图2所示,多提出的TBD由和谐蒸馏(HD)和任务解耦特征蒸馏(TFD)组成。

image-20240316143630655

和谐蒸馏

在本节中,我们逐步阐述了HD的推导过程。如上所述,分类分数和定位质量之间的差异会导致不正确的NMS抑制。因此,最重要的一点是量化这种差异,称为和谐分数(HS)。一般来说,HS的推导包括两个步骤:将预测结果转化为分类概率和回归概率,然后根据任务概率设计HS的表达式。

对于每个预测的边界框,image-20240316150616849分别表示分类分支和回归分支的输出。具体来说,image-20240316150702411是一个C维的分数向量,C表示类的数量。类似地,image-20240316150941501对从锚点(锚框或锚点)到实际预测的正则化偏移量进行编码。

任务特定概率的定义原则包括两个部分。首先,将概率幅值归一化为[0,1]。第二,概率越大,预测越准确。对于分类任务,通过使用归一化最大激活值简洁地优雅生成概率image-20240316155600872
P c = s o f t m a x ( m a x 1 < = K < = C P c l s K ) P_c = softmax(max_{1<= K <= C}P^K_{cls}) Pc=softmax(max1<=K<=CPclsK)
为分类预测的初始第K个元素,不传递sigmoid算子,softmax为空间方向的softmax函数,用于将保留的分类分数归一化为[0,1].

对于回归任务,实现与上面类似。具体来说,首先将归一化预测转换为实际的边界框。然后,我们评估每个边界框中的IOU得分和总体ground truth(gt)。对于每个预测框,仅保留最大的IOU作为回归概率image-20240316161255994
p r = m a x 1 < = g < = G I O U ( d e c o d e ( P r e g , G T g ) ) p_r = max_{1<= g <= G}IOU(decode(P_{reg},GT_g)) pr=max1<=g<=GIOU(decode(Preg,GTg))
式中,G为每幅图像中的gt个数,G定义为对应的索引。decode表示变换函数,得到实际预测。

根据等式(2)和(3),给定预测的边界框,分类和定位质量直接用二元元组image-20240316161802867表示。基于这一定义,可以毫不含糊地推导出HS的公式。理论上,HS的定义应该满足两个条件。首先,公式是单调递减。例如,分类概率和定位概率之间的微小差异表明鼓励一致性:因此,应实现高HS。其次,定义应该是有界的,这有利于避免不要的学习困境。基于上述准则,HS通过激活函数tanh进行排列。
Δ = ∣ p r − p c ∣ \Delta = |p_r - p_c| Δ=prpc

H S = 1 − t a n h ( Δ p ) = 2 × e − Δ p e − Δ p + e Δ p HS = 1-tanh(\Delta p) = 2 \times \frac{e^{-\Delta p}}{e^{-\Delta p}+e^{\Delta p}} HS=1tanh(Δp)=2×eΔp+eΔpeΔp

由于教师模式在处理不和谐预测方面比学生模式表现的更好,自然的想法是将教师的HS作为新知识来指导学生的学习阶段。为区分,上标t,s分别表示教师和学生的HS。另外,通过L1 损失进行知识转换。HD的表达示意图如下:
L H D = ∑ l = 1 L 1 H × W ∑ i = 1 W ∑ j = 1 ∣ H S i , j , l t − H S i , j , l s ∣ L_{HD} = \sum ^L _{l=1} \frac{1}{H \times W}\sum _{i=1}^W \sum _{j=1}|HS_{i,j,l} ^t - HS_{i,j,l} ^ s| LHD=l=1LH×W1i=1Wj=1HSi,j,ltHSi,j,ls
l为第l层FPN。i,j为空间位置,W和H分别对应预测的空间宽度和高度。此外,我们注意到等式6是在前景和背景预测的贡献相等的情况下计算的。为了突出前景预测的贡献,建立了IOU引导的和谐损失。利用教师模型生成的image-20240316164606357作为空间蒙版来提升重要前景位置的权重。此外,引入了动态调制因子image-20240316165007287,以放大与教师有较大性能差距的不忠实预测的损失。考虑以上两点,可将空间掩模image-20240316165248324和式(6)修正为:
ψ = p r , i , j , l t × 1 + ∣ p c , i , j , l t − p c , i , j , l s ∣ \psi = p_{r,i,j,l} ^ t \times \sqrt{1 + |p_{c,i,j,l} ^t - p_{c,i,j,l}^s| } ψ=pr,i,j,lt×1+pc,i,j,ltpc,i,j,ls

L H D = ∑ l = 1 L ∑ i = 1 W ∑ j = 1 H ψ i , j , l ∣ p c , i , j , l t − p c , i , j , l s ∣ ∑ m = 1 W ∑ j = 1 H ψ m , n , l L_{HD} = \sum _{l=1} ^L \frac{\sum _{i=1} ^W \sum_{j=1}^H \psi _{i,j,l}|p_{c,i,j,l}^t - p_{c,i,j,l} ^s|}{\sum _{m=1}^W\sum_{j=1}^H \psi_{m,n,l}} LHD=l=1Lm=1Wj=1Hψm,n,li=1Wj=1Hψi,j,lpc,i,j,ltpc,i,j,ls

任务解耦特征蒸馏

基于FPN特征image-20240316170607007构造任务解耦特征蒸馏(TFD)。原因可以从两个方面解释:一方面,蒸馏FPN特征可以方便地同时模仿骨干和FPN特征。另一当面,由于最近的大多数研究都是对FPN特征进行蒸馏,因此选择FPN特征来完成公平的比较是很自然的,经典的特征模仿可以表示为:
L F P N = ∑ l = 1 L ∑ i = 1 W ∑ j = 1 H ( F i , j , l t − ) L_{FPN} = \sum _{l=1}^L \sum _{i=1}^W \sum{j=1}^H (F_{i,j,l}^t - ) LFPN=l=1Li=1Wj=1H(Fi,j,lt)
表示用于对齐教师和学生特征的自适应层。由上式中的定义可以看出,在目标检测中,由于背景像素远远大于前景像素,因此损失将以背景区域为主。因此,如何确定蒸馏区域是一个有价值的课题。

与之前的研究不同,我们从任务感知空间分布的角度重新审视了关键区域的选择。下面列出了分类感知和定位感知区域结合的理论原因。一方面,FPN特征是后续分类和回归头的支柱,因此将它们结合起来是一个自然的选择。另一方面,由于之前的工作揭示了两个不和谐分布,只使用分类掩码可能会遗漏一些定位感知区域。基于以上分析,本文提出的TFD完全利用了教师的预测概率image-20240316192217845来生成任务感知掩码。数学公式如下:
L T F D = ∑ l = 1 L ω c × ∑ i = 1 W ∑ j = 1 H p c , i , j , l t − ( F i , j , l t − ϕ ( F i , j , l s ) ) 2 ∑ m = 1 W ∑ n = 1 H p c , m , n , l t + ∑ l = 1 L ω r × ∑ i = 1 W ∑ j = 1 H p c , i , j , l t − ( F i , j , l t − ϕ ( F i , j , l s ) ) 2 ∑ m = 1 W ∑ n = 1 H p c , m , n , l t L_{TFD} = \sum_{l=1}^L \frac{\omega _c \times \sum_{i=1} ^ W \sum_{j=1}^Hp_{c,i,j,l}^t - (F_{i,j,l}^t - \phi (F_{i,j,l} ^s))^2}{\sum _{m=1}^ W \sum_{n=1}^H p_{c,m,n,l}^t} + \sum _{l=1}^L \frac{\omega _r \times \sum_{i=1} ^ W \sum_{j=1}^Hp_{c,i,j,l}^t - (F_{i,j,l}^t - \phi (F_{i,j,l} ^s))^2}{\sum _{m=1}^ W \sum_{n=1}^H p_{c,m,n,l}^t} LTFD=l=1Lm=1Wn=1Hpc,m,n,ltωc×i=1Wj=1Hpc,i,j,lt(Fi,j,ltϕ(Fi,j,ls))2+l=1Lm=1Wn=1Hpc,m,n,ltωr×i=1Wj=1Hpc,i,j,lt(Fi,j,ltϕ(Fi,j,ls))2
image-20240316193010321是控制分类感知损失和定位感知损失权重的超参数。然而,在等式(10)中使用的固定权重可能会受到一些限制。例如,固定权重难以全面适应动态输入。此外,与仅使用分类掩码的方法相比,还引入了额外的超参数优化开销。因此,我们提出了一个任务协同权值生成(TWG)模块,以动态分配权值来克服这些限制。在SENet的激励下,TWG由两个完全连接(FC)层和一个softmax层组成,以生成任务感知权值。理论上,学习权重应该由教师的的预测和学生当前的学习状态共同决定。基于这一点,在实现TWG时,首先在通道维度上连接预测掩码image-20240316200624009
P = c o n c a t ( p c t , p r t , p c s , p r s ) P = concat(p_c^t,p_r^t,p_c^s,p_r^s) P=concat(pct,prt,pcs,prs)
然后,由平均池化操作符压缩连接的P。随后添加两个轻量级FC层来生成任务感知权重。最后,softmax函数输出归一化的权重,以保证这些权重之和为1。请注意,我们使用最直接的方式来完成TWG的实现,以避免陷入繁琐的网络构建。因此,学习到的权重可以在数学上表示为:
T 0 , T 1 = s o f t m a x ( F C ( F C ( A v g P o o l ( P ) ) ) ) T^0,T^1 = softmax(FC(FC(AvgPool(P)))) T0,T1=softmax(FC(FC(AvgPool(P))))
因此,给定任务感知权重image-20240316201719605,等式(10)可以改写为:
L T F D − c = ∑ l = 1 L T l 0 × ∑ i = 1 W ∑ j = 1 H p c , i , j , l t ( F i , j , l t − ϕ ( F i , j , l s ) ) 2 ∑ m = 1 W ∑ n = 1 H p c , m , n , l t L_{TFD-c} = \sum _{l=1}^L \frac{T^0_l \times \sum _{i=1} ^W \sum_{j=1}^H p_{c,i,j,l}^t(F_{i,j,l}^t - \phi (F_{i,j,l}^s))^2}{\sum _{m=1} ^W \sum_{n=1}^H p_{c,m,n,l}^t} LTFDc=l=1Lm=1Wn=1Hpc,m,n,ltTl0×i=1Wj=1Hpc,i,j,lt(Fi,j,ltϕ(Fi,j,ls))2

L T F D − r = ∑ l = 1 L T l 0 × ∑ i = 1 W ∑ j = 1 H p r , i , j , l t ( F i , j , l t − ϕ ( F i , j , l s ) ) 2 ∑ m = 1 W ∑ n = 1 H p r , m , n , l t L_{TFD-r} = \sum _{l=1}^L \frac{T^0_l \times \sum _{i=1} ^W \sum_{j=1}^H p_{r,i,j,l}^t(F_{i,j,l}^t - \phi (F_{i,j,l}^s))^2}{\sum _{m=1} ^W \sum_{n=1}^H p_{r,m,n,l}^t} LTFDr=l=1Lm=1Wn=1Hpr,m,n,ltTl0×i=1Wj=1Hpr,i,j,lt(Fi,j,ltϕ(Fi,j,ls))2

L T F D = L T F D − c + L T F D − r L_{TFD} = L_{TFD-c} + L_{TFD-r} LTFD=LTFDc+LTFDr

总损失

上述的工作流程和TBD的推导都是基于一级检测器,当该方法与Faster RCNN等两阶段方法结合起来时,由于区域建议网络(RPN)可以看做是一个特定的单阶段模块,因此的生成来源于区域建议网络(RPN)的输出。其余部分与学生模型一致。本文的整体损失包括原始损失和定制蒸馏的损失:
L = L d e t e c t o r + α L H D + β L T F D L = L_{detector} + \alpha L_{HD} + \beta L_{TFD} L=Ldetector+αLHD+βLTFD

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

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

相关文章

深入浅出计算机网络 day.3 第二章 物理层

一定要把你在意的东西看得淡一点&#xff0c;再淡一点&#xff0c;有些事情有些人&#xff0c;只要你不那么在乎了&#xff0c;就不会伤害到你 —— 24.3.16 2.1 物理层概述 01.物理层要实现的功能 02.物理层接口特性 一、物理层要实现的功能 物理层要实现的功能就是在各种传输…

自定义协议

应用层 有许多现成的协议(HTTP协议做网站必备),也有许多需要程序员自定义的协议. 1.自定义协议 自定义协议: 1.明确传递的信息是什么 2.约定好信息按照什么样的格式来组织成二进制字符串 举个例子: 当我们点外卖时,打开软件,会显示商家列表,列表中有很多项,每一项都包含了一…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Rating)

提供在给定范围内选择评分的组件。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Rating(options?: { rating: number, indicator?: boolean }) 从API version 9开始&#…

HTTPS(超文本传输安全协议)工作过程

一、简述HTTPS HTTPS超文本传输协议&#xff08;全称&#xff1a;Hypertext Transfer Protocol Secure &#xff09;&#xff0c;是以安全为目标的 HTTP 通道&#xff0c;在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL&#x…

数据库——书籍+内容0.1版本

背景&#xff1a;将一本书&#xff0c;存入我们的数据库中&#xff0c;并可以查出来 采用&#xff1a;第三范式&#xff08;3NF&#xff09;设计模式 设计数据库模板 第一范式&#xff08;1NF&#xff09;&#xff1a;确保表的每一列都是不可分割的原子数据项。 第二范式&…

【分布式websocket 】前端vuex管理客户端消息crud!使用localStorage来存储【第19期】

前言 聊天系统客户端是要存储消息的&#xff0c;因为所有所有的历史消息都从服务器拉的话一方面服务器压力大&#xff0c;另一方面也耗费用户流量。所以客户端存储消息是势在必行的。如何存储呢上一篇文章也写了&#xff0c;大概就是浏览器的话是localStorage或者IndexedDB。然…

Docker 学习笔记一

一、什么是docker Docker 是一个基于轻量级虚拟化技术的容器&#xff0c;整个项目基于Go语言开发&#xff1b;Docker是一个C/S架构&#xff0c;后端众多模块各司其职&#xff0c;docker的daemon是运行在主机上通过client可以进行通信。 docker 由三部分组成&#xff1a;镜像(…

【第六章】简单网络实现手写数字分类-编程实现

前言 让我们编写一个程序&#xff0c;学习如何使用随机梯度下降和MNIST训练数据来识别手写数字。我们将通过一个简短的Python程序来实现这一点&#xff0c;只需要74行代码&#xff01;首先我们需要获取MNIST数据。 本章代码和数据下载地址&#xff1a; https://download.csdn.…

碳素光线疗法与中医

看得见的穴位碳素光线疗法 最近日本的医疗随着科学技术的发达&#xff0c;在基础研究、临床各领域取得了显著的发展。日本人的平均寿命比战前大幅延长&#xff0c;结核及其他疑难杂症、癌症等疾病也在逐渐被压制。其中&#xff0c;作为癌症的辅助疗法&#xff0c;日本癌症学会等…

【PyTorch】成功解决ModuleNotFoundError: No module named ‘torch’

【PyTorch】成功解决ModuleNotFoundError: No module named ‘torch’ &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希…

蓝桥杯单片机快速开发笔记——独立键盘

一、原理分析 二、思维导图 三、示例框架 #include "reg52.h" sbit S7 P3^0; sbit S6 P3^1; sbit S5 P3^2; sbit S4 P3^3; void ScanKeys(){if(S7 0){Delay(500);if(S7 0){while(S7 0);}}if(S6 0){Delay(500);if(S6 0){while(S6 0)…

Flink 集群部署模式

文章目录 前言一、会话模式&#xff08;Session Mode&#xff09;二、单作业模式&#xff08;Per-Job Mode&#xff09;三、应用模式&#xff08;Application Mode&#xff09; 前言 Flink支持多种集群部署模式&#xff0c;以满足不同场景和需求。以下是Flink的主要集群部署模…

Rust学习02:推荐一本入门书,免费的

都说Rust的学习曲线很陡峭&#xff0c;试过才知雀实不容易。 先说我的基础&#xff0c;非科班&#xff0c;自学Python&#xff0c;写过几个小程序。 我买书从来不扣扣嗖嗖的&#xff0c;所以先啃了几本Rust的入门书&#xff0c;包括&#xff1a; Tim McNamara的《Rust实战》&am…

javaEE——线程的等待和结束

文章目录 Thread 类及常见方法启动一个线程中断一个线程变量型中断调用 interrupt() 方法来通知观察标志位是否被清除 等待一个线程获取当前线程引用休眠当前线程 线程的状态观察线程的所有状态观察 1: 关注 NEW 、 RUNNABLE 、 TERMINATED 状态的切换 多线程带来的风险为什么会…

基于SpringBoot框架实现的B2B平台的医疗病历交互系统

采用技术 基于SpringBoot框架实现的B2B平台的医疗病历交互系统的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 管理员角色 医院管理 医院注册 医院文…

pytorch 入门基础知识一(Pytorch 01)

一 深度学习基础相关 深度学习三个主要的方向&#xff1a;计算机视觉&#xff0c;自然语言&#xff0c;语音识别。 机器学习核心组件&#xff1a;1 数据集(data)&#xff0c;2 前向传播的model(net)&#xff0c;3 目标函数(loss)&#xff0c; 4 调整模型参数和优化函数的算法…

C#混淆心得

C#混淆心得 近期遇到混淆C#代码的需求&#xff0c;在网上找了很多办法&#xff0c;在此记录一下。 混淆的本质就是让代码变丑&#xff0c;让别人看不懂。 为什么要混淆&#xff1a; 1.保护核心代码 可以在一定程度上避免别人偷代码&#xff0c;从而保护重要的部分&#xf…

vscode jupyter 如何关闭声音

网上之前搜的zen模式失败 仅仅降低sound失败 #以下是成功方式&#xff1a; 首先确保user和remote的声音都是0&#xff1a; 然后把user和remote的以下设置都设置为off就行了&#xff01; 具体操作参考 https://stackoverflow.com/questions/54173462/how-to-turn-off-or-on-so…

传输层/UDP/TCP协议

再谈端口号 TCP/IP协议用“源IP”&#xff0c;“源端口号”&#xff0c;“目的IP”&#xff0c;“目的端口号”&#xff0c;“协议号”&#xff0c;这样一个五元组来标识一个通信&#xff08;可以用netstat -n来查看&#xff09;。 端口号的划分和知名端口号 我们之前就说过&am…

综合知识篇05-设计模式考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例…