pytorch cifar100
1.0.0
使用Pytorch练习CIFAR100
这是我的实验证明
$ cd pytorch-cifar100由于它更方便,因此我将使用CIFAR100数据集,但是我还保留了在数据集文件夹中编写您自己的数据集模块的示例代码,作为人们不知道如何编写它的示例。
安装张板
$ pip install tensorboard
$ mkdir runs
Run tensorboard
$ tensorboard --logdir= ' runs ' --port=6006 --host= ' localhost '您需要使用ARG -NET指定要训练的网
# use gpu to train vgg16
$ python train.py -net vgg16 -gpu有时,您可能需要使用set -warm to 1或2进行热身训练,以防止在早期培训阶段网络差异。
受支持的网args是:
squeezenet
mobilenet
mobilenetv2
shufflenet
shufflenetv2
vgg11
vgg13
vgg16
vgg19
densenet121
densenet161
densenet201
googlenet
inceptionv3
inceptionv4
inceptionresnetv2
xception
resnet18
resnet34
resnet50
resnet101
resnet152
preactresnet18
preactresnet34
preactresnet50
preactresnet101
preactresnet152
resnext50
resnext101
resnext152
attention56
attention92
seresnet18
seresnet34
seresnet50
seresnet101
seresnet152
nasnet
wideresnet
stochasticdepth18
stochasticdepth34
stochasticdepth50
stochasticdepth101
通常,具有最佳精度的权重文件将写入带有名称“最佳”的磁盘(CheckPoint文件夹中的默认值)。
使用test.py测试模型
$ python test.py -net vgg16 -weights path_to_vgg16_weights_file我没有使用任何培训技巧来提高准确性,如果您想了解有关培训技巧的更多信息,请参考我的另一个仓库,其中包含各种常见的培训技巧及其Pytorch实现。
我遵循纸张中的高参数设置,改善了与切口的卷积神经网络的正则化,即在第60、120、120、160个时期内iith lr = 0.1除以5除以5,这是200个具有128个批量衰变和重量衰减5e-4,Nesterov Moment的训练。您还可以通过对自信的输出分布进行惩罚和随机擦除数据增强来使用纸张正规化神经网络中的超参数,该数据最初是LR = 0.1,LR在150和225个时期内划分10,并对300个时期进行了培训,该培训具有128个批次化的128,这是更常用的。如果您没有足够的GPU存储器,则可以将批次化为64或任何适合您的东西。
您可以选择是否使用张板来可视化训练程序
我可以从某个模型中获得的结果,因为我使用相同的超参数来训练所有网络,因此某些网络可能无法从这些超参数中获得最佳结果,因此您可以通过对超参数进行填充来尝试自己的超级参数以获得更好的结果。
| 数据集 | 网络 | 参数 | top1 err | top5 err | 时期(LR = 0.1) | 时期(LR = 0.02) | 时期(LR = 0.004) | 时期(LR = 0.0008) | 总时代 |
|---|---|---|---|---|---|---|---|---|---|
| CIFAR100 | Mobilenet | 3.3m | 34.02 | 10.56 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Mobilenetv2 | 236万 | 31.92 | 09.02 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 挤压 | 78m | 30.59 | 8.36 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Shufflenet | 1.0m | 29.94 | 8.35 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | ShuffLenetV2 | 1.3m | 30.49 | 8.49 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | vgg11_bn | 28.5m | 31.36 | 11.85 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG13_BN | 2870万 | 28.00 | 9.71 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG16_BN | 340m | 27.07 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG19_BN | 39.0m | 27.77 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | RESNET18 | 11.2m | 24.39 | 6.95 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnet34 | 213m | 23.24 | 6.63 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | RESNET50 | 2370万 | 22.61 | 6.04 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | RESNET101 | 427m | 22.22 | 5.61 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | RESNET152 | 583m | 22.31 | 5.81 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET18 | 113m | 27.08 | 8.53 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET34 | 215m | 24.79 | 7.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET50 | 239m | 25.73 | 8.15 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET101 | 429m | 24.84 | 7.83 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET152 | 586m | 22.71 | 6.62 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnext50 | 148m | 22.23 | 6.00 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnext101 | 253m | 22.22 | 5.99 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnext152 | 3330万 | 22.40 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 注意59 | 557m | 33.75 | 12.90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 注意92 | 1025m | 36.52 | 11.47 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Densenet121 | 7.0m | 22.99 | 6.45 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Densenet161 | 26m | 21.56 | 6.04 | 60 | 60 | 60 | 40 | 200 |
| CIFAR100 | Densenet201 | 18m | 21.46 | 5.9 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Googlenet | 6.2m | 21.97 | 5.94 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Inceptionv3 | 223m | 22.81 | 6.39 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Inceptionv4 | 413m | 24.14 | 6.90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | InceptionResnetv2 | 654m | 27.51 | 9.11 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | X Ception | 21.0m | 25.07 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet18 | 114m | 23.56 | 6.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet34 | 216m | 22.07 | 6.12 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet50 | 265m | 21.42 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet101 | 4770万 | 20.98 | 5.41 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet152 | 66.2m | 20.66 | 5.19 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Nasnet | 5.2m | 22.71 | 5.91 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | WIDERESNET-40-10 | 559m | 21.25 | 5.77 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 随机直达18 | 11.22m | 31.40 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 随机depth34 | 21.36万 | 27.72 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 随机直达50 | 2371m | 23.35 | 5.76 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 随机直达101 | 4269m | 21.28 | 5.39 | 60 | 60 | 40 | 40 | 200 |