卷积操作(原理与实现)与Max pooling实现

前言关于卷积部分我自己了解的不少,这里我只记录不常见的知识。矩阵快速卷积简介:卷积操作是在图像中通过滑动窗口,逐像素进行矩阵计算,会消耗大量的计算资源去寻址和修改内存数据,因此最终的卷积操作并不是可我们认为的滑动窗口执行卷积操作,而是采用转为矩阵的方式进行快速计算,矩阵操作能在计算机中快速运算并且方便移植到GPU中,在实际生产环境中可以通过两步来完成卷积操作:(1) 使用Image to ...
摘要由CSDN通过智能技术生成

前言

关于卷积部分我自己了解的不少,这里我只记录不常见的知识。

矩阵快速卷积

简介:卷积操作是在图像中通过滑动窗口,逐像素进行矩阵计算,会消耗大量的计算资源去寻址和修改内存数据,因此最终的卷积操作并不是可我们认为的滑动窗口执行卷积操作,而是采用转为矩阵的方式进行快速计算,矩阵操作能在计算机中快速运算并且方便移植到GPU中,在实际生产环境中可以通过两步来完成卷积操作:

(1) 使用Image to column(Im2col)算法把输入图像和卷积核转换为规定的矩阵排列方式。
(2) 使用GEMM算法对转换后的两个矩阵进行相乘,得到卷积结果。
一般矩阵乘法(General Matrix Matrix Multiply, GEMM)将由卷积核产生的过滤矩阵乘以原图产生的特征图矩阵(Feature Matrix)的转置,得到大小为Count x (H x W)的输出特征图矩阵。
f e a t u r e   m a p = F i l t e r   M a t r i x . F e a t u r e ⋅ M a t r i x T = [ C o u n t × ( C × K × K ) ] ∗ [ ( C × K × K ) × ( H × W ) ] = C o u n t × H × W \begin{aligned} feature \space map & = Filter \space Matrix . Feature \centerdot Matrix^T \\ & = [Count \times (C\times K \times K) ] \ast [(C \times K \times K) \times (H \times W)] \\ &= Count \times H \times W \end{aligned} feature map=Filter Matrix.FeatureMatrixT=[Count×(C×K×K)][(C×K×K)×(H×W)]=Count×H×W
参数介绍:
C:channel
Count: 卷积核的数量
K:卷积核的宽度或高度
H\W: 卷积核在原图像的列或则行上能滑动几次。
Sample:
I m a g e = [ 3 2 1 0 1 2 3 1 1 ] ⇒ F e a t u r e   M a t r i x = [ 3 2 0 1 2 1 1 2 0 1 1 3 1 2 1 1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值