关于空间BN

2023-12-13 21:48:49

批次归一化对每个神经元都进行了归一化,或者说对每个特征都进行了归一化,并且用可学习的参数\gamma\beta进行重构。

那么如果卷积神经网络有3个通道,长和宽都是244,BN将需要学习3*244*244*2个参数,计算量是不是太大了?

实际上BN在CNN中只学习了3*2个参数,这里也有一个参数共享,它把一个特征图作为一个神经元,也就是说,对于同一个特征图,不同的像素点,采用的均值和方差是一样的。

那么具体计算均值和方差的时候应该怎么做呢?BN相当于把一个特征图的每个像素点都看成是这个特征的样本,因此,假设一个mini batch的数据是8*3*224*224,那么对于其中一个通道(特征图)的不同样本,就是8*244*244个像素,直接flatten,然后再计算mean和var即可,对每个特征图,都这样计算一次。

以上是个人的理解,网上查不到太多关于BN是“如何把一个特征图作为一个特征”的资料,并且pytorch的源码追不到这里面的细节,唯一的参考链接如下,也在github上进行了一点查证。如果有不对的地方,欢迎大佬指正,感激不尽。

参考的链接:


https://www.cnblogs.com/king-lps/p/8378561.html

文章来源:https://blog.csdn.net/qq_60587058/article/details/134981176
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。