Üben Sie auf CIFAR100 mit Pytorch
Dies ist mein Experiment Eviroument
$ cd pytorch-cifar100Ich werde den CIFAR100 -Datensatz von Torchvision verwenden, da es bequemer ist, aber ich habe den Beispielcode auch für das Schreiben Ihres eigenen Datensatzmoduls im Datensatzordner beibehalten, da ein Beispiel für Personen nicht weiß, wie man es schreibt.
Tensorboard einbauen
$ pip install tensorboard
$ mkdir runs
Run tensorboard
$ tensorboard --logdir= ' runs ' --port=6006 --host= ' localhost 'Sie müssen das Netz angeben, das Sie mit ARG -NET trainieren möchten
# use gpu to train vgg16
$ python train.py -net vgg16 -gpu Manchmal möchten Sie möglicherweise das Warmup -Training von Set -warm bis 1 oder 2 verwenden, um zu verhindern, dass das Netzwerk während der frühen Trainingsphase unterschiedlich ist.
Die unterstützten Netto -Argumente sind:
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
Normalerweise würde die Gewichtsdatei mit der besten Genauigkeit auf die Festplatte mit dem Namensuffix "Best" geschrieben (standardmäßig im Checkpoint -Ordner).
Testen Sie das Modell mit Test.py
$ python test.py -net vgg16 -weights path_to_vgg16_weights_fileIch habe keine Trainingstricks verwendet, um Accuray zu verbessern. Wenn Sie mehr über Trainingstricks erfahren möchten, wenden Sie sich bitte an mein anderes Repo, enthält verschiedene gemeinsame Trainingstricks und deren Pytorch -Implementierungen.
Ich folge den Hyperparametereinstellungen in Papier verbesserte die Regularisierung von Faltungs neuronalen Netzwerken mit Ausschnitt, was initiert ist, was bei 60., 120., 160. Epochen, 20 Epochen mit Batchsize 128 und Gewichtsverfall 5E-4, Nesterov-Impuls von 0,9, um 5.1. Sie können auch die Hyperparameter aus dem Papier regulalisieren, indem Sie neuronale Netze regulieren, indem Sie selbstbewusste Ausgangsverteilungen und zufällige Löschdatenvergrößerungen bestrafen, was anfänglich LR = 0,1 ist, LR durch 10. und 225. Epochen durch 10. und 225. Epochen getestet wird. Sie könnten die Batchsize auf 64 oder was auch immer zu Ihnen passt, wenn Sie nicht genug GPU -Speicher haben.
Sie können auswählen, ob Tensorboard verwendet werden soll, um Ihr Trainingsvorgang zu visualisieren
Das Ergebnis, das ich von einem bestimmten Modell erhalten kann, da ich die gleichen Hyperparameter verwende, um alle Netzwerke zu trainieren, erhalten einige Netzwerke möglicherweise nicht das beste Ergebnis aus diesen Hyperparametern.
| Datensatz | Netzwerk | Parameter | top1 err | Top5 err | Epoche (LR = 0,1) | Epoche (LR = 0,02) | Epoche (LR = 0,004) | Epoche (LR = 0,0008) | Gesamtepoche |
|---|---|---|---|---|---|---|---|---|---|
| CIFAR100 | Mobilenet | 3,3 m | 34.02 | 10.56 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Mobilenetv2 | 2,36 m | 31.92 | 09.02 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Squeezenet | 0,78 m | 30.59 | 8.36 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Mischungen | 1,0 m | 29.94 | 8.35 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | SHUFFLENETV2 | 1,3 m | 30.49 | 8.49 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG11_BN | 28,5 m | 31.36 | 11.85 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG13_BN | 28,7 m | 28.00 | 9.71 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG16_BN | 34,0 m | 27.07 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG19_BN | 39,0 m | 27.77 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnet18 | 11,2 m | 24.39 | 6.95 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnet34 | 21,3 m | 23.24 | 6.63 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnet50 | 23,7 m | 22.61 | 6.04 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnet101 | 42,7 m | 22.22 | 5.61 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnet152 | 58,3 m | 22.31 | 5.81 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Preactresnet18 | 11,3 m | 27.08 | 8.53 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Preactresnet34 | 21,5 m | 24.79 | 7.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Preactresnet50 | 23,9 m | 25.73 | 8.15 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Preactresnet101 | 42,9 m | 24.84 | 7.83 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Preactresnet152 | 58,6 m | 22.71 | 6.62 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnext50 | 14,8 m | 22.23 | 6.00 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnext101 | 25,3 m | 22.22 | 5.99 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnext152 | 33,3 m | 22.40 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Achtung59 | 55,7 m | 33.75 | 12.90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Achtung92 | 102,5 m | 36.52 | 11.47 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Densenet121 | 7,0 m | 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,2 m | 21.97 | 5.94 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Inceptionv3 | 22,3 m | 22.81 | 6.39 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Inceptionv4 | 41,3 m | 24.14 | 6.90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | InceptionResnetv2 | 65,4 m | 27.51 | 9.11 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Xception | 21,0 m | 25.07 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet18 | 11,4 m | 23.56 | 6.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet34 | 21,6 m | 22.07 | 6.12 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet50 | 26,5 m | 21.42 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | SERESNET101 | 47,7 m | 20.98 | 5.41 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet152 | 66,2 m | 20.66 | 5.19 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Nasnet | 5.2m | 22.71 | 5.91 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Bideresnet-40-10 | 55,9 m | 21.25 | 5.77 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Stochasticdepth18 | 11,22 m | 31.40 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Stochasticdepth34 | 21,36 m | 27.72 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Stochasticdepth50 | 23,71 m | 23.35 | 5.76 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Stochasticdepth101 | 42,69 m | 21.28 | 5.39 | 60 | 60 | 40 | 40 | 200 |