本文主要是介绍【caffe转向pytorch】caffe的BN层+scale层=pytorch的BN层,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
caffe里面用BN层的时候通常后面接一下scale层,原因如下:
caffe 中为什么bn层要和scale层一起使用
这个问题首先你要理解batchnormal是做什么的。它其实做了两件事。
- 输入归一化 x_norm = (x-u)/std, 其中u和std是个累计计算的均值和方差。
2)y=alpha×x_norm + beta,对归一化后的x进行比例缩放和位移。其中alpha和beta是通过迭代学习的。
那么caffe中的bn层其实只做了第一件事。scale层做了第二件事。
这样你也就理解了scale层里为什么要设置bias_term=True,这个偏置就对应2)件事里的beta。
而在pytorch中,我们可以看一下代码注释说明
其中红框这部分,我们可以看一下这个公式是
本身同时完成两件事情。
因此,caffe的BN层+scale层 与 pytorch的BN层 等价
喜欢请打赏,一毛两毛也是个意思,么么哒
支F宝账号:2363891614@qq.com
这篇关于【caffe转向pytorch】caffe的BN层+scale层=pytorch的BN层的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!