基于mm classification在imagenet上的分类复现
image.png

Backbone

VGG系列

ResNet系列

Effientnet系列

MobileNet系列

Loss

Cross Entropy

Datasets

CIFAR-10

CIFAR-100

Imagenet

Clothing

Strategy

四种学习率衰减方法

分类 - 图2
上述4种策略为自己根据资料整理得到的衰减类型:指数衰减、固定步长的衰减、多步长衰、余弦退火衰减。
1、指数衰减

  1. optimizer_ExpLR = torch.optim.SGD(net.parameters(), lr=0.1)
  2. ExpLR = torch.optim.lr_scheduler.ExponentialLR(optimizer_ExpLR, gamma=0.98)

其中参数gamma表示衰减的底数,选择不同的gamma值可以获得幅度不同的衰减曲线,如下:

分类 - 图3
2、固定步长衰减
学习率每隔一定步数(或者epoch)就减少为原来的gamma分之一,使用固定步长衰减依旧先定义优化器,再给优化器绑定StepLR对象:

  1. optimizer_StepLR = torch.optim.SGD(net.parameters(), lr=0.1)
  2. StepLR = torch.optim.lr_scheduler.StepLR(optimizer_StepLR, step_size=step_size, gamma=0.65)

其中gamma参数表示衰减的程度,stepsize参数表示每隔多少个step进行一次学习率调整,下面对比了不同gamma值下的学习率变化情况:
分类 - 图4
**_3、多步长衰减

希望不同的区间采用不同的更新频率,或者是有的区间更新学习率,有的区间不更新学习率**

  1. optimizer_MultiStepLR = torch.optim.SGD(net.parameters(), lr=0.1)
  2. torch.optim.lr_scheduler.MultiStepLR(optimizer_MultiStepLR,
  3. milestones=[200, 300, 320, 340, 200], gamma=0.8)

其中milestones参数为表示学习率更新的起止区间,在区间[0. 200]内学习率不更新,而在[200, 300]、[300, 320]…..[340, 400]的右侧值都进行一次更新;gamma参数表示学习率衰减为上次的gamma分之一。其图示如下:

分类 - 图5
4、余弦退火衰减

  1. optimizer_CosineLR = torch.optim.SGD(net.parameters(), lr=0.1)
  2. CosineLR = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer_CosineLR, T_max=150, eta_min=0)

参数T_max表示余弦函数周期;eta_min表示学习率的最小值,默认它是0表示学习率至少为正值。确定一个余弦函数需要知道最值和周期,其中周期就是T_max,最值是初试学习率。

分类 - 图6

Experiments

下面是自己跑出来的结果

CIFAR10
Model Params(M) Flops(M) Input size Top-1(%) Top-5(%)
vgg11 128.807 7.613 32x32 90.02
vgg11_bn 128.80 272.520 32x32 90.22
ResNet-18 37.119 11.182 32x32 92.1
ResNet-32 75.426 21.798 32x32 93.75
ResNet-50 83.889 23.529 32x32 93.14
ResNeXt29(32x4d) 4.774 779.626 32x32 93.76
ResNeXt29(2x64d) 9.129 1417 32x32 93.83
densenet121 7.979 2866 32x32 94.29
mnasnet0_5 0.927 109.320 32x32 90.1
shufflenet_v2_x0_5 0.344 0.817 32x32 91.0
shufflenet_v2_x1_0 1.264 3.026 32x32 92.74
shufflenet_v2_x1_5 2.489 300.281 32x32 92.83
MobileNet_v2 6.398 2.237 32x32 93.28
Efficientnet-b0 0.054 0.284 32x32 94.36
Efficientnet-b1 0.073 0.387 32x32 94.68
Efficientnet-b2 0.079 19.669 32x32 94.52
Efficientnet-b3 0.102 26.065
CIFAR100
Model Params(M) Flops(M) Input size Top-1(%) Top-5(%)
ResNet-18 74.560 92.450
ResNet-34 74.910 92.730
ResNet-50 73.040 91.480
ResNet-101 78.230 93.900
densenet121 77.350 93.820
shufflenet_v2_x0_5 69.020 90.500
shufflenet_v2_x1_0 73.200 92.090
shufflenet_v2_x1_5 74.290 92.530
MobileNet_v2 74.720 92.600
MobileNet_v3 32x32 69.850 89.860
Efficientnet-b0 0.054 0.284 32x32 76.77
Efficientnet-b1 0.073 0.387 32x32 76.420
Efficientnet-b2 0.079 19.669 32x32 77.25
Efficientnet-b3 0.102 26.065 32x32
Efficientnet-b7 32x32 77.640 93.260


ImageNet(阉割版,每类取300张)
Model Params(M) Flops(M) Input size Top-1(%) Top-5(%)
ResNet-18 224x224
ResNet-34 224x224
ResNet-50 224x224
ResNet-101 224x224
densenet121 224x224 55.136
shufflenet_v2_x0_5 224x224
MobileNet_v2 224x224 52.3
Efficientnet-b0 1.343 1.664 224x224 58.514
ImageNet
Model Params(M) Flops(M) Input size Top-1(%) Top-5(%)
ResNet-18 224x224
ResNet-34 224x224 68.992 87.604
ResNet-50 224x224 73.706 90.206
ResNet-101 224x224
densenet121 224x224
shufflenet_v2_x0_5 224x224
MobileNet_v2 224x224
MobileNet_v3 224x224 62.496 84.678
Efficientnet-b0 1.343 1.664 224x224 73.396