Pytorch深度学习50篇·······第一篇:认识深度学习

Posted 咕里个咚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytorch深度学习50篇·······第一篇:认识深度学习相关的知识,希望对你有一定的参考价值。

上一篇文章已经交给大家深度学习中的卷积是如何卷的,我的总结就是对应位置相乘在相加,最后加上bias。如果说怎么卷是小学三年级的知识,那我们今天就来说点小学六年级的知识,今天主要还是对上次那个动图做一下进一步的讲解,要说的几个深度学习中经常听到的英文单词,它们分别是:stride,padding,kernel,feature map,上动图

1.stride 

stride直译过来就是步伐,也就是卷积核移动的步伐,常见的stride一般都是1,2这样的步伐,老人们常说步子迈大了,会摔跟头,我说步子迈大了,裤裆会发愁。

动图第一帧,卷积核的位置就在这里

动图第二帧

明显的可以看到,卷积核向右移动了两个格子,所以stride=2,这么说应该没问题了吧

再来看一帧

卷积核横着跑完之后,他又竖着跑了,和第一帧相比,它向下移动了两个格子,所以stride=2。

没办法,就是这么严谨。stride大概就是这样的了

2.padding

padding直译过来就是填充的意思,你可能要问了,填充干什么,填充的哪里啊,填什么东西啊。

其实就是在图片的上下左右各补上一圈0,如下图

外面灰色的那一圈就是padding上的0,中间蓝色的部分就相当于是图片的,也就是说图片大小是5*5的,padding之后的大小就是7*7,但是这个时候padding=1,一定不要以为padding=2.

我对padding的理解就是,填充是为了保证图片的边缘也能够和中间部分一样,可以被卷积多次,如果不padding的话,中间信息卷积的次数就多了,就不公平了,这是个人人平等的社会,图像也是平等的,其次padding还能够保持feature map的尺寸,我现在这么说,你可能还不懂什么意思,没关系,我等会讲到后面我会回来说这个feature map的事

3.kernel

 kernel直译过来就是卷积核的意思,反应在图上就是下图

Filter W0是一个kernel, Filter W1也是一个kernel, 所以这个卷积过程中有2个卷积核,卷积核的个数就是2,个数有了,我们还要明确卷积核的大小,图上也写的很清楚了,是3*3*3,也就是说一个kernel有3个3*3的矩阵

不知道你有没有疑问,为什么要3个3*3的矩阵,为什么不能是4个或者5个3*3的矩阵,几个矩阵这个事啊,还要看图片的维度,我们可以从图片上看到,图片的维度是7*7*3(padding之后),也就是说,图片有几个通道,kernel就要有几个矩阵,因为我们输入的图片是3个通道的,所以kernel才有3个矩阵。但是你别把这个矩阵的个数和卷积核的个数搞混了,在我们这个动图中,卷积核的个数是2(W0和W1),每个卷积核有3个3*3的举证,为什么有3个,是因为图片是3通道的。解释清楚了吧,千万别混淆了。

我们经常说这次卷积,用到的卷积核的维度是3*3*3*2,这个也是这次卷积的参数量。

4.feature map

feature map的直译过来就是特征图的意思,我们一般说特征图的时候会说,这个特征图的长是多少,宽是多少,通道数是多少。以上图为例,最后的那个output volume为例,我们就可以称之为一个feature map,它的长就是3,宽就是3,通道数就是2(有几个矩阵,通道数就是几),所以我们说这个feature map的维度就是3*3*2,上图

 

,相当于图片在卷积之后,图片有7*7*3变成了3*3*2,明显变小了,为什么会变小,就是因为卷积的原因,它的padding和stride造成的,其实有个公式可以直接计算:

代表生成的feature map的宽,w代表图片的宽(padding之前),k代表kernel的大小,p代表padding数,,s代表stride

根据上图 w = 5 , k=3, p=1 , s=2,所以新的feature map的宽=((5-3+2)/2)+1 = 3

验算正确,记住公式即可

那新的feature map的高又怎么算呢,方法跟你上面其实是一样的,还是写一下吧

是新的feature map的高,h是原图的高(padding之前),计算同上,可以自己试一试

刚刚也说了output volume的维度是3*3*2,那这个2是哪来的,这个2啊,就是kernel的个数,不用就计算了。

5.总结

这次卷积相当于用3*3*3*2的卷积核,在padding=1,stride=2的情况下,把5*5*3的图片变成3*3*2的feature map。

我觉得已经说的很通俗易懂,王婆卖瓜,自卖自夸。

OK,认识深度学习到这里就差不多可以了,接下里我会演示一个深度学习相关的示例,先演示效果再来,一步步教学,这是我之后的方针。

值得一提的事,昨天,就在昨天,我的上一篇文章登上了csdn人工智能榜的第22名,给我高兴坏了,真的是高兴惨了,哈哈哈,之前还去网上查了一下怎么让自己的文章红起来,然后看到一句话,我与大家共勉,那就是:

仰望星空,脚踏实地。

22名的截图献上

 

至此,敬礼,salute!!!!!

 

以上是关于Pytorch深度学习50篇·······第一篇:认识深度学习的主要内容,如果未能解决你的问题,请参考以下文章

Pytorch深度学习50篇·······第二篇:人脸识别

Pytorch深度学习50篇·······第五篇:YOLO-----训练篇

Pytorch深度学习50篇·······第三篇:非监督学习

(机器学习深度学习常用库框架|Pytorch篇)第一节:Pytorch简介和其核心概念

Pytorch深度学习50篇·······第七篇:GAN生成对抗网络---CGAN

Pytorch深度学习50篇·······第五篇:YOLO-----数据标签的准备