Pytorch深度学习 - CNN

卷积神经网络(CNN)通过卷积核扫描图像获取特征,参数量相对较少。卷积后经池化层降低维度,BatchNormalization加速训练并防止过拟合。ResNet利用残差结构解决深度学习层数增加导致的效果下降问题。
摘要由CSDN通过智能技术生成

 图像卷积:使用卷积核扫描整张图片,每一次扫描与全局图对应部分相乘再累加

相比于线性层,CNN参数量更少,只有特征图上的点作为参数。

通常卷积核有多个,具体向量维度举例如下:

假设图像向量维度为【batch_size, channel_size, height, width】

卷积核的维度是【kernel_num, channel_size, kernel_height, kernel_width】

卷积核的通道数一定与图像的通道数保持一致,每个卷积核对应一个偏置,每个卷积之后得到的三个通道叠加得到一个新向量,因此输出的向量通道数与卷积核数保持一致。

卷积之后得到的特征包含信息越多

 

池化层作用:给特征图降维,有最大值池化和平均池化

传统CNN模块包含

conv2d - BatchNormalize(对feature进行缩放,使其接近于正态分布) - Pooling - ReLU(去掉相应低的特征部分)

Batch Normalization

目的:

减少梯度消失,加快了收敛过程。

起到类似dropout一样的正则化能力,一定程度上防止过拟合。

放宽了一定的调参要求。

When to use BN:

在神经网络训练时遇到收敛速度很慢,或梯度爆炸等无法训练的状况时可以尝试BN来解决。另外,在一般使用情况下也可以加入BN来加快训练速度,提高模型精度。

经典CNN - ResNet

CNN层数达到20层以上,训练效果不升反降,由此提出ResNet

在固定层之间使用短接线,保证至少不比原来差

何为残差

假设输入为x,输出为H(x),则要学习的部分为H(x) - x,即减去短接到输出的部分。

 一个block的结构

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值