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 |