1.bn合并的必要性:
bn层即batch-norm层,一般是深度学习中用于加速训练速度和一种方法,一般放置在卷积层(conv层)或者全连接层之后,将数据归一化并加速了训练拟合速度。但是bn层虽然在深度学习模型训练时起到了一定的积极作用,但是在预测时因为凭空多了一些层,影响了整体的计算速度并占用了更多内存或者显存空间。所以我们设想如果能将bn层合并到相邻的卷积层或者全连接层之后就好了,于是就有了这篇文章所提到的工作。
2.bn合并本身的数学原理:
bn层一般在神经网络中‘所处的位置如下图所示:
上图可以看到,bn层的位置一般在conv(or Fc)层的后面,也有一些情况bn在conv(or Fc)层的前面。我们先来两种情况分别来考虑。
2.1 bn层在conv层之后的情形
bn合并的原理,可以由下两张图所示
bn层进行数据处理的过程
这张图的表示,将一个数据X,进行bn层的操作和计算得到的结果
张图表示,第一部分代表bn层处理之后接着卷基层的操作结果,第二部分表示将bn层合并到卷积层之后,卷积层w和b的变化。
注意点:conv,Bn,Scale,层之间的top和bottom的名字要相同
参考文章:
- https://blog.csdn.net/a8039974/article/details/83686633