caffe中卷积计算方法
来源:互联网 发布:软件著作权申报 编辑:程序博客网 时间:2024/05/16 06:54
http://zhangliliang.com/2015/02/11/about-caffe-code-convolutional-layer/ http://www.zhihu.com/question/28385679 参考地址
一,
先把贾扬清卷积的几张幻灯片贴上来,希望能有点用:
最后一页没画,但是基本上就是Filter Matrix乘以Feature Matrix的转置,得到输出矩阵Cout x (H x W),就可以解释为输出的三维Blob(Cout x H x W)。Caffe里用的是CHW的顺序,有些library也会用HWC的顺序(比如说CuDNN是两个都支持的),这个在数学上其实差别不是很大,还是一样的意思。
顺便广告一下我吐槽Caffe里面卷积算法的链接:Convolution in Caffe: a memo · Yangqing/caffe Wiki · GitHub
二、
使用im2col的方法将卷积转为矩阵相乘,图如下:
想象一副图像尺寸为MxM,卷积核mxm。在计算时,卷积核与图像中每个mxm大小的图像块做element-wise相乘,相当于把该mxm图像块提取出来,表示成一个长度为m^2的列,共有多少个这种图像块?在不考虑pad和stride的情况下,一共有(M-m+1)^2个,把这么些个图像块均表示为m^2的列,然后组合为一个大矩阵(m^2 x (M-m+1)^2)。这里的操作就是img2col中做的事,matlab中就有这种函数。然后把卷积核也表示为m^2向量,并按列复制为同尺寸矩阵(m^2 x (M-m+1)^2)。俩矩阵按列做点积即得结果。
待卷积图像经过IMG2COL后,就可以直接与网络权重矩阵相乘了(不需要卷积核在图像上滑动了)。这时利用普通的矩阵乘法就是卷积操作。
//修正,条目1中 I.H x I.W是输入的feature map的尺寸,原图笔误,谢谢 @晚晴也是晴 指正
所以 如果能够理解全连接层的实现,那么距离理解卷积层也就一步之遥了,差的是要理解里面的im2col和col2im的作用,经过这两个操作后,卷积层的操作跟全连接层的操作基本是一致的。
- caffe中卷积计算方法
- caffe中卷积计算方法
- caffe中卷积计算详解
- Caffe中卷积的实现
- 卷积算子计算方法(卷积运算)
- 卷积算子计算方法(卷积运算)
- 卷积算子计算方法(卷积运算)
- 卷积算子计算方法(卷积运算)
- 卷积算子计算方法(卷积运算)
- 卷积算子计算方法(卷积运算)
- 关于图像卷积与caffe中卷积实现
- Caffe中卷积层的实现
- caffe中卷积层的实现
- Caffe中实现卷积的计算
- caffe中卷积层的权重初始化
- caffe中CNN卷积计算量估算
- caffe代码阅读7:Caffe中卷积的实现
- 卷积算子的计算方法(卷积的运算)
- mybatis在xml文件中处理大于号小于号的方法
- 你是想读书,还是想读完书?
- Android日志消息的生成详细步骤
- iOS应用获取当前设备的bundle_id
- JPA-style positional param was not an integral ordinal
- caffe中卷积计算方法
- Leet Code OJ 119. Pascal's Triangle II [Difficulty: Easy]
- 剑指offer 1 二维数组中的查找
- Android 之TextView文本折叠查看显示更多效果
- 工厂方法
- 深入理解HTTP协议(转)http协议学习系列
- android之adapter的抽象与提炼
- react-lifecycle-parent-child.jsx(自github)
- android:layout_gravity="bottom"无效