CNN经典结构(Lenet,AlexNet,VGG,GoogleNet,ResNet, Resnext, Densenet, Senet, BAM,mobilenet)及其pytorch实现

本文介绍2012 - 2019年经典CNN结构,如LeNet5、AlexNet、VGG等,阐述各网络结构、预处理、预测方法和超参数等内容。还使用PyTorch实现大部分模型,并在CIFAR数据集测试,代码可在github查看。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CNN经典结构

前言

本文主要介绍2012-2019年的一些经典CNN结构,从Lenet,AlexNet,VGG,GoogleNet,ResNet, Resnext, Densenet, Senet, BAM, CBAM, genet, sknet, mobilenet。以下附上论文链接。另外,使用pytorch实现了大部分的模型,并在CIFAR数据集上进行测试,可在github链接中查看具体实现代码细节。如果对大家有帮助,欢迎给个star。?

Architecture

Regularization

Learning Rate Scheduler

经典网络结构

1. LeNet5

LeNet5 诞生于 1994 年,LeNet做为CNN的经典网络结构,结构如下。
在这里插入图片描述

LeNet5特征能够总结为如下几点:
1)卷积神经网络使用三个层作为一个系列: 卷积,池化,非线性
2) 使用卷积提取空间特征
3)使用映射到空间均值下采样(subsample)
4)双曲线(tanh)或S型(sigmoid)形式的非线性
5)多层神经网络(MLP)作为最后的分类器
6)层与层之间的稀疏连接矩阵避免大的计算成本

2.AlexNet

网络结构
如下图所示,8层网络,参数大约有60 million,使用了relu函数,头两个全连接层使用了0.5的dropout。使用了LRN和重叠的池化,现在LRN都不用了,一般用BN作Normalization。当时使用了多GPU训练。
预处理
先down-sample成最短边为256的图像,然后剪出中间的256x256图像,再减均值做归一化(over training set)。 训练时,做数据增强,对每张图像,随机提取出227x227以及水平镜像版本的图像。除了数据增强,还使用了PCA对RGB像素降维的方式来缓和过拟合问题。
预测
对每张图像提取出5张(四个角落以及中间)以及水平镜像版本,总共10张,平均10个预测作为最终预测。
超参数
SGD,学习率0.01,batch size是128,momentum为0.9,weight decay为0.0005(论文有个权重更新公式),每当validation error不再下降时,学习率除以10。权重初始化用(0,0.01)的高斯分布,二四五卷积层和全连接层的bias初始化为1(给relu提供正值利于加速前期训练),其余bias初始化为0。

在这里插入图片描述

3.VGG

网络结构
如下图所示,VGG-16,16层,参数大约有138 million。实验发现LRN的加入没有提升反而更差,舍弃使用。实验发现1x1效果更差,于是没有使用,1x1卷积在Network in Network(颜水成)中提出推广,是很重要的思想,在GoogleNet和ResNet都有用到。
使用小卷积核3x3可以捕捉左右上下的信息,而且利于堆叠深度(保证参数不要过大)。步长为1。same卷积。
两个3x3卷积可以和5x5卷积达到一样的感受野。三个3x3卷积可以和7x7卷积达到一样的感受野。使用三个3x3的好处在于使用了3个非线性变换,同时后减小了参数.假设输入输出通道数一样,那么有
在这里插入图片描述
和AlexNet一样,头两个全连接层后面加0.5的dropout。
超参数
和AlexNet基本一致。batch size是256。初始化也是用(0,0.01)的高斯分布,只不过VGG先训练一个浅层的网络,然后把浅层网络的部分参数来初始化深层网络部分参数,其它参数还是用高斯分布。值得注意的是论文提交后VGG发现使用glorot的初始化方法可以不用预训练。
预处理
和AlexNet不同,在下采样的时候不是变成256,变成一个S,S有两种方法来设定。第一个方法是固定的S(single-scale),固定为256或384。为了加速384的网络,用256预训练的模型进行权重初始化。另外学习率调小为0.001。第二个方法从[256, 512]中随机采样S(multi-scale,注意这里的是multi-scale training,和overfeat中的multi-scale test含义不一样),这可以看成用尺寸抖动&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cpp编程小茶馆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值