《动手学深度学习》学习心得2

本次的学习内容,不论是视觉方向还是NLP方向都是重点内容,我主要侧重于视觉方向,因此主要总结一下在卷积神经网络方面的一些内容。

网络结构

CNN的一般组成结构:卷积层、池化层、Batchnormal层、Dropout层、FC层

卷积层

用来提取图像的各种特征,在pytorch中需要提供卷积核尺寸、步长、padding参数,这些参数决定了输出图像的尺寸。可以通过下面的公式进行计算:
outwidth = (inputwidth - kernel_width + 2padding + strides) / strides
outheight = (inputheight - kernel_height + 2
padding + strides) / strides
某些情况下,在卷积层之后图像大小会变小。这时候为了弥补信息的损失,会增加通道数。

池化层

用来降低图像尺寸,降低网络的计算量。包括max-pooling和average-pooling,这里面需要注意的是池化层不会改变输入的通道数,即输入和输出的通道数是相等的。
在有些网络中,为了放开对输入图像尺寸的限制,在最后一个卷积层和第一个FC层之间,加入了全局平均层,假设最后一个卷积层的输出是nnchannel,则经过全局池化层后变成11chananel。只要channel和第一个FC层的输入个数匹配即可。

Batchnormal层、Dropout层

这两个都是用来降低过拟合的,通常是在激活函数之前,有时候有了Batchnormal,可以不要Dropout。

FC层

FC层前面的所有部分,一般可以成为特征提取,我们作模型的fine-tune,一般就是拿成熟模型提取的特征,接上我们自己的FC层,只训练FC层参数(或训练后对前面部分的参数进行微调)。
FC层的稠密连接,导致大部分参数都分布在此处。因此也出现了很多去掉FC层的全卷积网络。

卷积核大小的理解

在最初的Alexnet中,卷积核的尺寸是比较大的,比如有1111的卷积核,初衷应该是为了获取足够大的感受野。后来随着CNN的发展,人们认识到若干小卷积连接能够起到和大卷积相同的作用,比如两个33的卷积核连接,感受野和一个55的卷积核是一样的,而参数却更少了。
因此后续的经典网络,常用的卷积核是3
3和5*5的。

通道数的变化

以VGG为例,如果图像尺寸不变,则前后两层的通道数也维持不变;如果图像尺寸减半,则通道数翻倍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值