各位机友们好,我是一个即将大学毕业的学生,所学专业并非计算机相关的专业,但是毕业的论文选题跟人工智能息息相关,我的论文讨论的是海员安全帽的佩戴检测方法,我的论文思路是Pytorch里运行YOLOv5训练自己的模型来进行安全帽的检测。目前进行到了数据集制作的部分。利用labelimg标注数据和数据集准备,我用labelimg标注好了数据,接下来的一步是目标检测算法,将数据集为划分训练集和验证集。但是博文里面给的接下来的步骤全是直接给了一串代码,本人因毕业论文刚接触不久不知道这串代码的作用,该如何使用这串代码,是应该插入到某个文件里面,还是建立一个文件把代码复制上去运行,一直是云里雾里的状态,望各位能不吝赐教。
这个是我参考的这篇机友的博文
https://blog.csdn.net/didiaopao/article/details/119927280?spm=1001.2014.3001.5501
论文提出的方案是:用每个节点特征的标准差的开p次方来缩放每个节点的特征向量,其中p>1,论文称其为节点规范化(NodeNorm)
,形式上可表示为
其中σiσ_iσi为节点的表征hih_ihi的标准差,即σi=vari1/2σ_i = var_i^{1/2}σi=vari1/2,此处为了清晰起见,省略了层索引lll。
在使用NodeNorm标准化之后,节点iii的标准偏差为σi1−1/pσ_i^{1-1/p}σi1−1/p,如果σi>1σ_i>1σi>1,则标准化后的标准差小于σiσ_iσi。因此,一个较小的ppp可更严格地控制方差膨胀。当p=1p=1p=1时,所有节点的方差标准化为111。
现有的层归一化(LayerNorm)
(引用J. L. Ba, J. R. Kiros, and G. E. Hinton, “Layer normalization,”arXivpreprint arXiv:1607.06450, 2016.)也执行节点的方差缩放操作,形式上,层归一化形式上可表示为
其中的⊙⊙⊙为按元素乘法,α=(α1,⋅⋅⋅αd)α= (α_1,···α_d)α=(α1,⋅⋅⋅αd)和β=(β1,⋅⋅⋅βd)β= (β_1,···β_d)β=(β1,⋅⋅⋅βd)为可学习的参数,ddd为h的维度,σiσ_iσi为标准差,uiu_iui为平均值。一个层归一化由三个基本操作组成:方差缩放、均值减法和特征线性变换(α和β是斜率和偏差)。特别是,LayerNorm中的方差缩放(variance-scaling)本质上是我们的NodeNorm。
ps:这篇论文写作是真的不太行,看论文的过程太累了。