首页 > 其他 > 详细

caffe中融合convolution layer和batch norm layer

时间:2019-11-19 19:25:20      阅读:90      评论:0      收藏:0      [点我收藏+]

一. 合并原因

一般的网络结构,卷积层后会跟batch norm层,在测试阶段:

(1) 从参数的由来来讲,训练好的模型中的batch norm参数,是由训练集中每个batch的batch norm层的参数累加得到的;

(2) 从功能来讲,batch norm做的工作是对batch数据做减均值除方差,再线性变换操作。

通过将卷积层和batch norm层合并,可以减少网络初始化和运算的时间,从而在测试的时候,减少测试时间。

二. 合并方式

(1) 卷积层的计算公式:

                                     技术分享图片       (1)

其中Wconv是卷积层的权重,bconv是卷积层的偏置。

(2) BN层的计算公式(batch norm + scale):

                                         技术分享图片(2)

m为均值,delta为方差,abn和bbn为scale层的参数。 

(3) 两者融合,融合的原理是:将卷积层的输出(1)作为BN层的输入带入公式(2)中,可得:

技术分享图片(3)

X是卷积层的输入,因为上述变换都是线性变换,则融合后的卷积层参数为:

                                   技术分享图片(4)

 

三. 合并实现

(1) 给定测试deploy和训练好的模型caffemodel;

(2) 从deploy中找出convolution, batch norm, scale的位置;

(3) 从caffemodel中取出上述参数,按照(4)式计算新的卷积层参数;

(4) 从deploy中删除batch norm和scale层。

 

 

 

 

 

caffe中融合convolution layer和batch norm layer

原文:https://www.cnblogs.com/liangx-img/p/11890946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!