专栏首页AutoML(自动机器学习)卷积操作转化成矩阵乘法
原创

卷积操作转化成矩阵乘法

参考:https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/

平常都是无脑使用Pytorch提供的nn.Conv2d方法,但是并不关心具体该如何实现,原来是把卷积操作转化成矩阵乘法,而不是真的通过滑动卷积核来做卷积,下面做具体介绍。

首先看一下下面的示意图,左边是输入图像,右边是卷积核(为方便说明,只用了一个卷积核)。

image.png

下面是用这个卷积核对输入图像做卷积操作,最后得到一个2维的平面

image.png

由下图可以看到卷积操作其实就是把输入图像划分成若干个块(patch),每个块的维度和卷积核保持一致(这里暂时忽略stride,padding的影响)。然后我们可以把每个3维的patch展开成一维向量,然后拼接起来得到一个二维矩阵。

image.png

因为每个patch都是和相同的卷积核做卷积,那么我们也可以同样把卷积核展开成以为向量。下图中右边的卷积核矩阵表示多个卷积核拼凑的结果。

image.png

完整的转化过程可看下图:

<footer style="color:white;;background-color:rgb(24,24,24);padding:10px;border-radius:10px;"><br>

<h3 style="text-align:center;color:tomato;font-size:16px;" id="autoid-2-0-0"><br>

<b>MARSGGBO</b><b style="color:white;"><span style="font-size:25px;">♥</span>原创</b>

<p>如有意合作,欢迎私戳</p>

<p>邮箱:marsggbo@foxmail.com</p>

<b style="color:white;">

2019-12-20 17:17:07

<p></p>

</b><p><b style="color:white;"></b>

</p></h3><br>

</footer>

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [转载]对深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解

    在可分离卷积(separable convolution)中,通常将卷积操作拆分成多个步骤。而在神经网络中通常使用的就是深度可分离卷积(depthwise se...

    marsggbo
  • 论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile

    MnasNet的目的很简单就是设计出表现又好,效率又高的网络。在介绍之前简单回顾一下现有的一些提高网络效率的方法:

    marsggbo
  • 李宏毅-Network Compression课程笔记

    模型通常是过参数的,即很多参数或者neuron是冗余的(例如非常接近0),因此我们可以移除这些参数来对模型进行压缩。

    marsggbo
  • 深度学习之VGG19模型简介

    该网络是在ILSVRC 2014上的相关工作,主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。

    李小白是一只喵
  • InceptionV3 网络模型

    GoogLeNet inceptionV1 到 V4,一直都在逐步改进,本文主要是阅读 V3 的论文学习总结。

    琦在江湖飘
  • 深入探究深度卷积语义分割网络和 Deeplab_V3

    深度卷积神经网络(DCNN)在各种计算机视觉应用中取得了显着的成功。当然,语义分割的任务也不例外。

    AI研习社
  • 【分割模型解读】感受野与分辨率的控制术—空洞卷积

    通过前两篇文章,我们了解到分割任务是一个像素级别的任务,因此需要在输入的空间尺寸下对每个像素都有分割的结果。换句话说,如果输入的空间尺寸是HxW,那么输出也需要...

    用户1508658
  • 重磅!《深度学习 500 问》已更新,GitHub 标星 2.6W(附完整下载)

    几个月前,红色石头发文介绍过一份在 GitHub 上非常火爆的项目,名为:DeepLearning-500-questions,中文译名:深度学习 500 问。...

    Datawhale
  • 卷积神经网络(CNN)

            CNN,即卷积神经网络,主要用于图像识别,分类。这篇卷积神经网络是前面介绍的多层神经网络的进一步深入,它将深度学习的思想引入到了神经网络当中,通...

    Flaneur
  • 卷积神经网络之 - Inception-v3

    Inception-v3 架构的主要思想是 factorized convolutions (分解卷积) 和 aggressive regularization...

    机器视觉CV

扫码关注云+社区

领取腾讯云代金券