![d57d99df63f9b375f08a6b41903f20e0.png](https://img-blog.csdnimg.cn/img_convert/d57d99df63f9b375f08a6b41903f20e0.png)
上一篇文章
JermmyXu:神经网络量化入门--量化感知训练zhuanlan.zhihu.com![28ab95870826f08ec0a9ba0a49976684.png](https://img-blog.csdnimg.cn/img_convert/28ab95870826f08ec0a9ba0a49976684.png)
介绍了量化训练的基本流程,本文介绍量化中如何把 BatchNorm 和 ReLU 合并到 Conv 中。
Folding BatchNorm
BatchNorm 是 Google 提出的一种加速神经网络训练的技术,在很多网络中基本是标配。
回忆一下,BatchNorm 其实就是在每一层输出的时候做了一遍归一化操作:
![9a6030426dc8a1e23706bfc24f926b24.png](https://img-blog.csdnimg.cn/img_convert/9a6030426dc8a1e23706bfc24f926b24.png)
其中
一般卷积层与BN合并
Folding BatchNorm 不是量化才有的操作,在一般的网络中,为了加速网络推理,我们也可以把 BN 合并到 Conv 中。
合并的过程是这样的,假设有一个已经训练好的 Conv 和 BN:
![80456bbb135f9faa6c79302d1c84495d.png](https://img-blog.csdnimg.cn/img_convert/80456bbb135f9faa6c79302d1c84495d.png)
假设 Conv 的 weight 和 bias 分别是