caffe中的卷积实现

本文详细介绍了Caffeine中卷积层的实现原理,包括卷积计算量的公式推导、参数量的计算方法及卷积层的高效计算策略。通过分析,揭示了卷积层中权值共享的本质及其带来的参数重复利用率高的特点。

在caffeine中,作者并没有按照传统的卷积方式来实现卷积,而是按照matlab中的方法imcol来实现卷积的。具体实现方式如下:
这里写图片描述
按照caffe中做一次前向传播时卷积层的计算量方法得出:
Calculation(MAC) = I*J*M*N*K*L
I*J表示卷积核的大小,M*N表示输出特征图的大小,K表示输入通道,L表示输出通道。所以,由以上参数得:对于输入和输出分别为K和L的卷积来说,相当于如下:
这里写图片描述
说明对于一个输入通道为n_c的图片来说,其过滤器的通道也必须是n_c,每个过滤器有n_c个卷积核,共有n*n_c个卷积核,n恰好是过滤器的个数,也是输出特征图片的通道数。即:输入通道数位K、输出通道为L时,输卷积核的个数应该是K*L。由于每个卷积核在一个位置进行I*J次的乘法和累加运算,一个输出中共得计算了M*N次,则总的输出中共计算了M*N*I*J*K*L次。这就是calculation(MAC)公式的由来。

由im2col图中也可以看出,caffe中的卷积运算是先将一张图片的所有像素点组合成一个矩阵X,再将卷积核也相应的变换成对应的矩阵H,最后进行一次性的矩阵运算。

卷积核中的参数总量为:
param = I*J*K*L
通常一次送入一批(batch)样本,此时计算应该再乘上批量尺寸(对于计算量同样)。
计算量-参数量之比为CPR(CALCULATION TO PARAMETERS RATIO):
calculation/param = M*N
该计算说明,卷积层输出的特征图尺寸越大,CPR值越高,在同等计算量下的参数重复利用率越高,这也是卷积中权值共享的精髓。
参见:《21天实战caffe》 -作者 赵永科
Convolutional Neural Networ -吴恩达

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值