【pytorch卷积和池化理解】

了解图片存储格式

首先可以简单理解灰度图片形式,一个二维矩阵存储,每个值的访问在0-255上。从每个像素(i,j)取值上可以明暗程度,因此我们可以得到一张灰度图片是这样的
![图片有高度h,宽度w](https://img-blog.csdnimg.cn/1527cf0cf32a4866bcfbf4df1beca38c.png #pic_center =240x240)
现在我们拓展一下,将其变为多个二维矩阵,于是我们可以理解为这样一张rgb图片就是有三个通道
![二维矩阵个数称为通道](https://img-blog.csdnimg.cn/74e828fb9dd946d88e731b8637bf9b3e.png #pic_center =240x240)

链接: 首先对于灰度图片的简单理解

卷积操作理解

看了属于醍醐灌顶那种: 大佬对于卷积操作的简介
看完之后可以对于卷积核是什么?为什么这么做有一定理解。

此处我们仅仅介绍计算机视觉方向的卷积(卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算)

首先我们忽略通道这一维度,我们计算
在这里插入图片描述
也就是每个位置相乘相加计算卷积,最后得到输出图像在这里插入图片描述
因此输出图像的形状可以计算出来
在这里插入图片描述

填充和步幅

我们上述执行是基于滑动窗口,仅仅向左移动一格,我们当然可以走的更远,这就称为步幅
我们发现每次卷积操作后我们图片(提取的特征,压缩信息)都变得更加小了,我们怎么保证图片大小不变呢
这就引入了填充
在这里插入图片描述

在这里插入图片描述
所以我们最终可以得出一个公式根据输入图片像素和卷积核大小求输出图片大小
(n-k+p+s)/s n是输入图片高或者宽,k是卷积核的高或宽,p是指填充的所有大小(图片上方和下方累加的数量)

注意:在填充过程我们如何保证填充后图片进行卷积计算后输出图片,大小仍然是未填充的输入图片呢?
这就是p=k-1决定的,填充等于这个值时,计算后图片大小相等。
当然这就出现了卷积的大小奇偶问题。
在这里插入图片描述

(ps:上述所说,指高或者宽某一个)

多输入通道

了解上述后,我们对于多个通道的图片的卷积计算如下
在这里插入图片描述
我们通过扩充多个卷积核和多个输入通道计算,将最终结果累加,转换为输出。

所以我们会发现一个问题?
那就是不管多少通道输入的图片,我们和对应数量卷积核计算得到输出后,发现我们得到的一个通道的输出。

所以我们如何得到多通道的输出结果呢?所以这个就需要引入多个三维核函数

在这里插入图片描述
我们重新梳理梳理

到底怎么理解这些:
二维的核函数,就是用来计算某一个通道图片的卷积
三维的核函数,就是用来计算多通道图片的卷积(实质是二维核函数的个数等于输入通道数的个数,计算最终结果)
四维的核函数,就是用来扩充最终输出的通道,(实质是我三维核函数的个数等于输出通道的个数)
所以我们就很清楚明白了,为什么说输出通道的个数是卷积层的超参数,我的个数能决定最终输出的通道数呀!!

明白了这些我们就可以根据上述公式计算神经网络中每层网络的变化了,例如

在这里插入图片描述
我们首先根据0-1正太分布随机生成了一个X–》数量是2,图片通道数为1,高和宽为28
经过卷积后,形状[2,6,24,24]理解为 2张图片,图片通道变为6个,由于默认步幅和填充,所以我们计算
(28-5+0+1)/1=24,所以图片高和宽变成了24*24

(n-k+p+s)/s n是输入图片高或者宽,k是卷积核的高或宽,p是指填充的所有大小(图片上方和下方累加的数量)
ps:卷积函数传入参数解释(第一个数输入通道,第二个数输出通道,卷积核大小,默认步幅1,默认填充0)

1*1卷积

在这里插入图片描述
1*1卷积干嘛呢?为什么这样操作呢??

仔细想想?我们会发现这个思想及其厉害。 首先我们1*1计算是不是把每个输入通道的像素成我们卷积核累加
类似于W1x+W2x+…+Wnx的计算,那么我们是否可以变相理解为MLP(多层感知机)的全连接。

其次,我们指导三维核函数的个数就是输出通道的个数,而且我们图像不需要填充就和原来大小一致,所以我们能改变输出通道数!!

所以1*1卷积计算是一个非常重要的操作!!!后面Resnet设计时候就参考了这个

池化层

通过上述解释卷积后,我们也可以很快理解池化操作

由于我们卷积操作对于计算边缘会比较敏感(这个可以去查查相关资料,这里不解释原理)

池化层分为最大池化和平均池化,最大池化如下:
在这里插入图片描述
当然我们理解平均,那就是把窗口累加求均值即可。

其他的填充和步幅操作和卷积一致,所以参考上述即可

注意以下几点即可
1、池化层不修改通道数目,因为没有卷积那种累加削减维度的计算
2、池化层的默认步幅是等于内核的大小的,计算输出和卷积一致

码字不易,还请各位看官点个赞,谢谢啦!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值