【pytorch框架学习】10.卷积神经网络CNN

本文介绍了卷积操作在图像处理中的基本概念,包括卷积核参数对图像变换的影响,以及卷积层在PyTorch中的应用。同时详细讲解了卷积盒kernel的形状、池化层(最大值和平均值池化)的作用,以及BatchNorm的normalize功能及其在PyTorch中的实现。最后提及了经典卷积神经网络的结构。
摘要由CSDN通过智能技术生成

一,卷积

卷积是一张图片经过卷积盒,进行卷积运算,输出得到另一张矩阵

卷积核中的参数不同,经过卷积后的效果不同

比如下面是将一张图片变尖锐

一张图片经过下面的卷积核后会变模糊

一张图片经过下面的卷积核会得到图片的轮廓

卷积神经网络训练的过程其实就是给卷积盒找到合适的参数的过程

二,卷积盒kernel的shape

如图可以看到,卷积盒有两个chanle,分别是16和3

其中3是由输入图像的chanle决定的,输入的图像是3通道的,那么一个kernel也需要分别对三个通道进行观察,也需要三个kernel,但是这三个kernel我们认为他是同一个kernel,因为它里面的权值是一样的。这三个kernel分别对三个通道进行卷积操作后,得到的矩阵再累加,得到最终的图片。

16决定了输出的图像的chanle,他代表有多少个卷积盒以不同的视角来观察这张图片,就比如一个卷积盒以blur的视角观察图片,另一个卷积盒以Edge的视角观察图片。一般来说,我们认为这一个dim才是卷积盒的chanle。

我们还可以发现,卷积盒还能起到改变图片chanle的作用。比如上面的例子,图片由输入的三通道变成了输出的十六通道。

三,卷积conv2d再pyt中的使用

只需要调用nn中的Conv2d类即可

需要注意的是传参数的时候把input_chanle放在前面,output_chanle放在后面,这和卷积盒的shape表示方法的顺序刚好是反过来的

四,池化层pooling

作用是提取特征,在发明池化pooling之前,使用向下取样subsampling来进行效果相同的操作。

所以在看年代比较久远的神经网络的时候,需要直到subsampling起到的就是一个pooling的作用

pooling由两种,一种是最大值池化,另一种是平均值池化

五,batch_norm

1.normalize

其实在之前已经使用过Normalize这个概念了,就是把数据平移到0的左右两边,符合高斯分布规律的样子

它的数学操作是求出这一对值的均值和方差,然后对每个值, 减去均值,再除以方差,这样得到的所有的值是符合上述分布的样子

如果输入的是一个三通道的图片,那么分别对每一个通道进行上述操作即可

那么这么做的意义是什么呢

我们知道sigmoid激活函数,在输入-4到4之间,效果是很好的,但是超过这个范围就会出现梯度弥散现象,所以经过normalize操作后,在进行sigmoid操作,可以很大程度上避免梯度弥散现象。

即使不用sigmoid激活函数,对数据进行normalize也是有实际意义的

就比如输入的数据,x都是变化很小的数据,1,2,3之类的,y都是变化很大的数据100,200,300

那么在梯度下降的时候,顺着y下降的方向,在起初会得到一个很好的效果,所以模型会趋向于向这个方向进行梯度下降操作,然后再向x下降的方向进行下降操作。相当于走了弯路,本来能直线到达的还需要拐个湾到达。

经过normalize操作后,就可以避免这种情况发生

一般来说,数据集经过normalize操作后,训练的效率会提升70%

2.normalize在pyt中的使用

3.batch normalize

上面介绍的数据图像的normalize

batch normalize实际上是另一种normalize方式

如图,输入[b,c,h,w]

batch normalize实际上是把输入分成了c部分,每一部分代表一个chanle,他把每一个chanle的所有数据都合在了一起,包括不同张图片的同一chanle也都合在了一起做一次normalize操作。

4.batch nor在pyt中的使用

如下图所示,batchnorm实际上是可以当作神经网络中的一层的

六,经典的卷积神经网络

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

owooooow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值