美文网首页
im2col:使用二维矩阵乘法进行多维卷积计算。

im2col:使用二维矩阵乘法进行多维卷积计算。

作者: Koap | 来源:发表于2019-10-12 12:43 被阅读0次

这两天在做加速模型的工作,于是接触到了各种卷积的变形,和卷积的实现细节,从而了解到了im2col。im2col是一种高效的卷积计算方法,现在所有的深度学习框架应该都是用它实现卷积的吧(这个我没深究)。
过程如下图所示:


image

相当于把多维feature map 和多个kernel,分别平铺成二维矩阵,然后直接进行矩阵乘法。
假设kernel size=k^2input channels=Ckernels=output channels=Ninput size=h*w
为了切合图片内容,我们考虑no padding ,stride=1*1的情况。那么:
1. im2col后的feature map
被平铺成了一个二维矩阵,行数= (h-k+1)*(w-k+1)列数=k^2*C,即:

  • im2col后的feature map每一行——是input的每个通道的feature map的同一区域(大小=kernel size),reshape成一行,然后把各个通道按行拼接起来。
  • 行数——其实就是kernel跟input的每个通道的feature map要做的卷积运算次数,也就是output的size(行x列)。

2. im2col后的kernel matrix
也被平铺成了一个二维矩阵,行数=k^2*C列数=N

最后,使用1 ,2得到的两个二维矩阵做矩阵乘法,得到一个(h-k+1)*(w-k+1)行, N列的二维矩阵。
reshape成(h-k+1)*(w-k+1)*N,就完成了卷积计算过程。

相关文章

  • im2col:使用二维矩阵乘法进行多维卷积计算。

    这两天在做加速模型的工作,于是接触到了各种卷积的变形,和卷积的实现细节,从而了解到了im2col。im2col是一...

  • 卷积网络和卷积计算

    矩阵乘法和卷积乘法区别: 卷积的乘法和矩阵的乘法不一样,卷积的求和相当于加权求和,也可以称为加权叠加,矩阵相乘是将...

  • 吴恩达:卷积神经网络(Convolutional Neural

    @[toc] 1.1 计算机视觉 1.2 边缘检测示例 卷积的乘法(对应元素相乘,不同于矩阵乘法)fliter过滤...

  • R语言中各种apply相关函数的使用方法

    1. apply函数 对矩阵、数据框、数组(二维、多维)等矩阵型数据,按行或列应用函数FUN进行循环计算,并以返回...

  • 各算子库对卷积的支持

    算子库使用语言卷积内部实现逻辑OpenBlasC无卷积算子实现MKLC++1. 内部自己实现,矩阵乘法使用gemm...

  • Numpy中几种矩阵的乘法

    dot 同线性代数中矩阵乘法的定义: np.dot()np.dot(A, B):对于二维矩阵,计算真正意义上的矩阵...

  • 一、Numpy基础

    Numpy 基础 操作对象:Vectors:一组相同的对象,方便计算。Metrics:二维矩阵Arrays:多维数...

  • tensorflow && caffe conv

    caffe 跟 tensorflow对二维卷积的实现都是基于im2col的思路,上两图为caffe的实现,输入格式...

  • 高维矩阵(张量)的乘法规则

    高维矩阵指维度≥3的矩阵,或者叫张量。高维矩阵的乘法本质上还是二维矩阵之间的乘法,即把最后两个维度看成矩阵,执行二...

  • CNN中的卷积操作

    目录: 1.CNN中的卷积操作直接卷积法通用矩阵乘法GEMM 2.手动实现Conv2d 一、卷积神经网络中的卷积操...

网友评论

      本文标题:im2col:使用二维矩阵乘法进行多维卷积计算。

      本文链接:https://www.haomeiwen.com/subject/xskqmctx.html