caffe中的卷积实现
2018-03-08 17:28
281 查看
在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 -吴恩达
按照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 -吴恩达
相关文章推荐
- Caffe中卷积层的实现
- Caffe卷积层的实现细节
- Caffe中实现卷积的计算
- 图像卷积及Caffe中的卷积实现
- caffe源码 之 卷积层实现
- caffe代码阅读10:Caffe中卷积的实现细节(涉及到BaseConvolutionLayer、ConvolutionLayer、im2col等)-2016.4.3
- 深度学习Caffe实战笔记(17)MATLAB实现卷积层卷积核权重的可视化
- Caffe中卷积的实现细节(涉及到BaseConvolutionLayer、ConvolutionLayer、im2col等)
- 关于图像卷积与caffe中卷积实现
- LeNet-5结构分析及caffe实现————卷积部分
- 深度学习中的卷积计算及caffe的实现
- caffe代码阅读7:Caffe中卷积的实现
- caffe源码深入学习6:超级详细的im2col绘图解析,分析caffe卷积操作的底层实现
- Caffe中卷积运算的原理与实现
- Caffe中卷积的实现细节(涉及到BaseConvolutionLayer、ConvolutionLayer、im2col等)
- (Caffe)卷积的实现
- 神经网络BP推导及caffe中卷积层的实现
- caffe的卷积实现-1资料整理
- [转]LeNet-5结构分析及caffe实现————卷积部分
- caffe实现3D卷积代码 C3D 安装遇到的问题记录