(Caffe)卷积的实现

本文从CSDN上转移过来:
http://blog.csdn.net/mounty_fsc/article/details/51290446

本部分介绍Caffe中卷积的实现。

1 简介

  1. 使用im2col分别将featrue maps 以及卷积核转换成矩阵
  2. 调用GEMM(GEneralized Matrix Multiplication)对两矩阵内积。
(Caffe)卷积的实现_第1张图片
  • 图来自引用论文[1]

2 详细介绍

(Caffe)卷积的实现_第2张图片
这里写图片描述
(Caffe)卷积的实现_第3张图片
这里写图片描述
(Caffe)卷积的实现_第4张图片
这里写图片描述
(Caffe)卷积的实现_第5张图片
这里写图片描述
(Caffe)卷积的实现_第6张图片
这里写图片描述

最后,Filter Matrix乘以Feature Matrix的转置,得到输出矩阵Cout x (H x W),就可以解释为输出的三维Blob(Cout x H x W)。

3 作者的说明

在引用[3]中,作者说明了为何这样做卷积。
大致是:优化CNN中的卷积不是一件简单的事。由于时间、成本上的种种原因,作者作用了这样一种temporary、lazy的方案。但是却发现这样一种方案取得的效果还比较好。

[1]. High Performance Convolutional Neural Networks for Document Processing
[2]. https://github.com/Yangqing/caffe/wiki/Convolution-in-Caffe:-a-memo
[3]. https://www.zhihu.com/question/28385679

你可能感兴趣的:((Caffe)卷积的实现)