【适合初学者】玩转CIFAR10—Pytorch复现LeNet,AlexNet,VGG,GoogLeNet,MobileNet,ResNet,DenseNet,Vision Transformer模型

该博客详细介绍了在CIFAR10数据集上,包括LeNet、AlexNet、VGG、GoogLeNet、ResNet、ResNeXt、RegNet、DenseNet、EfficientNet、MobileNet等多个经典及现代卷积神经网络模型的性能测试。使用Pytorch框架,统一训练设置,对比了模型的测试准确率、训练时间、参数量等关键指标。此外,还涉及VisionTransformer等基于Transformer的模型,尽管在CIFAR10上表现不理想,但提供了宝贵的实验数据。所有代码开源,方便新手直接运行体验。

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

玩转CIFAR10


2021.12.30 更新:DPN


Introduction

本文使用pytorch框架,复现了LeNet, AlexNet, VGG, GoogLeNet, ResNet, ResNeXt, RegNet, DenseNet, EfficientNet, MobileNet(v1,v2,v3), ShuffleNet, SENet, PANSNet, RegNet, DLA等主流的卷积神经网络模型,以及Vision Transformer等基于Transformer的模型。同时在使用相同的训练设置的情况下,对以上模型在CIFAR10数据集上进行了详细的测试,测试内容包括测试集准确率、模型训练时间、模型参数量等。

所有模型代码风格统一、结构清晰、复现简单,训练模型只需打开ipynb文件运行即可,无需其他操作,对刚刚入门深度学习的新手非常友好。

Experiments

所有模型均使用Pytorch实现,运行环境为Python3.7+Pytorch1.9.1+CUDA11.1

所有的模型均使用相同的训练超参数设置(learning_rate,batch_size,epoch等)。

持续更新中。

General settings
Data augmentation(RandomCrop+RandomHorizontalFlip+Normalize)
Epoch=200, Batch_size=128
Learning_rate=0.01,Lr_scheduler(CosineAnnealingLR,T_max=200)
Optimizer(SGD,momentum=0.9,weight_decay=5e-4)

以下表格,Test Accuracy表示在所有epoch中最优的测试准确率;
Other Config表示模型中的其他设置(如vision transformer中multi-head数量、transformer层数等);
GPU表示使用了什么GPU进行训练;
Time Expended表示训练时间;
Parameter表示模型的参数量,一般可认为都是32位浮点数,因此(参数量/4/1024/1024=?MB)即可大约估算出模型所占空间,从MobileNet开始进行统计,因此表格部分内容为NaN,后期逐渐补上吧…

ModelTest AccuracyOther ConfigGPUTime ExpendedParameter
LeNet0.7474NaN30600h-39m-23s62006
AlexNet0.9039NaN30601h-17m-44sNaN
VGG-110.9223NaN30601h-10m-23sNaN
VGG-130.9368NaN30601h-39m-15sNaN
VGG-160.9335NaN30601h-55m-24sNaN
VGG-190.9334NaN30602h-10m-20sNaN
GoogLeNet0.9494NaN30608h-41m-56s6166250
MobileNet0.9151NaN30601h-34m-58sNaN
MobileNet V20.9399NaN30602h-51m-26sNaN
MobileNet V3-Large0.9028NaN30601h-51m-37s3884328
MobileNet V3-Small0.8715NaN30601h-14m-41s1843272
ShuffleNet_G10.9133NaN30601h-44m-26s960130
ShuffleNet_G20.912NaN30603h-57m-11s940282
ShuffleNet_G30.9101NaN30604h-47m-21s913762
ShuffleNet_G40.9066NaN30902h-19m-41s889658
ShuffleNet_G80.9051NaN30903h-5m-41s912562
EfficientNet0.9197NaN30902h-19m-35s3599686
ResNet-180.9415NaN30603h-30m-54sNaN
ResNet-500.9448NaN30604h-38m-58sNaN
ResNet-1010.9448NaN30606h-53m-23sNaN
ResNeXt-290.9467[3,3,3] c=2 bw=6430906h-40m-32s9128778
RegNetX_200MF0.9389NaN30605h-5m-54s2321946
DenseNet-1210.9351[6,12,24,16] k=1230603h-32m-33sNaN
DenseNet-1210.9411[6,12,24,16] k=1630604h-40m-51sNaN
DenseNet-1210.9434[6,12,24,16] k=2430903h-8m-11sNaN
DenseNet-1210.9537[6,12,24,16] k=3230903h-50m-14sNaN
DenseNet-1690.9501[6,12,32,32] k=3230904h-36m-12sNaN
SENet-180.9425NaN30903h-46m-40s11260354
PNASNetA0.8434NaN30602h-55m-54s130646
PNASNetB0.9141NaN30604h-32m-50s451626
DLA0.9447NaN30605h-36m-48s16291386
DPN-260.9405NaN30606h-51m-13s11574842
DPN-920.9473NaN30908h-20m-25s34236634
Vision Transformer0.7485[heads=1,layers=1]30601h-39m-41sNaN
Vision Transformer0.8417[heads=1,layers=8]30608h-8m-24sNaN
Vision Transformer0.8153[heads=4,layers=2]30901h-32m-51sNaN

备注

  1. 部分模型在RTX 3060显卡上运行显存不足且运行速度慢,故使用RTX 3090显卡训练。
  2. 由于Vision Transformer模型过于庞大,因此在CIFAR10数据集上的测试效果并不理想。同时对于Vision Transformer模型也进行了精简处理(multi-head数量和layer数量均不是原版设定)。
  3. 由于 ResNeXt 训练需要占用大量显存且训练时间非常长,本文仅使用 ResNeXt-29 进行训练。

Download

对于一般的卷积神经网络模型,提供完整的ipynb文件,文件中已经包含了模型的训练过程以及所有输出的信息,开箱即用。对于Transformer模型,提供源代码压缩包,以txt文件形式提供所有输出的信息

VGG-11,VGG-13,VGG-16,VGG-19均可点击以下 VGG 超链接一次性下载,其他模型同理。

点击以下超链接即可下载:
LeNet
AlexNet
VGG
GoogLeNet
ResNet
ResNeXt
DenseNet
EfficientNet
MobileNet
ShuffleNet
SENet
PANSNet
RegNet
DLA
DPN
Vision Transformer

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值