文章预览
最近在研究yolo的算法源码,在调试过程中发现中间层的BatchNorm2d的结果竟然出现了Nan。 第一次遇到这种情况,为了找出其中的原因,小编查阅了Pytorch官网关于BatchNorm2d的函数解释和网上关于该函数的相关博客,脑壳还是有点模糊,没有代码的测试验证,仅仅用文字去解释BatchNorm2d函数,初学者很容易一头雾水,半知半懂。 本文结合代码去验证BatchNorm2d的算法实现,若有不懂,读者可以参考文中代码并修改参数,来验证自己对该函数的理解是否准确。 实际项目中,我们处理的数据大部分是4维的,如: 其中N为数据个数,C为通道数,H,W分别表示图形的宽和高。 我们用BatchNorm2d归一化上述的数据结构,值得注意的是归一化是每个通道的归一化,以每个通道作为视角来归一化数据。 首先引用Pytorch官网对BatchNorm2d的描述: BatchNorm2d的计算公式: 其中x为需
………………………………