Caffe2 实现卷积计算原理(1)

最近花费两个月时间接触caffe2框架和卷积计算;

1.卷积计算原理

借用yangqing大神的原图
(1)矩阵变换
Caffe2 实现卷积计算原理(1)
图片维度:通道(C)*高度(H)*宽度(W)),可以看到按照通道方向,即C方向进行矩阵变换

(2)按行获取图像中每个点的值,依次进行矩阵变换
Caffe2 实现卷积计算原理(1)
依次按照通道方向,即C方向取值
(3)获取最终图像矩阵
Caffe2 实现卷积计算原理(1)
虽然按照通道方向取值每个点,实际过程中是将每个通道划分为小段进行取值。将图像转换后的结果为: 矩阵长 * 矩阵宽 对应原始图像的长*宽
(4)卷积核变换
同理,卷积核和图像变换也是一样的操作,进行矩阵变换。
Caffe2 实现卷积计算原理(1)
将卷积核变换为二维矩阵,跟原始图像进行矩阵乘运算。 矩阵变换最大的特点是将三维的图像计算,转化为二维计算,降低了计算资源消耗,同时矩阵乘提高运算效率。
不论是Caffe,还是Caffe2框架都有两种图像计算顺序,一种为NCHW,另一种为NHWC,但是它们在数学原理上的运算是一样的,差距不是很大。