Pytorchを使用してCIFAR100で練習します
これは私の実験の回避です
$ cd pytorch-cifar100Torchvisionの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時には、セット-warmから1または2でウォームアップトレーニングを使用して、初期のトレーニング段階でネットワークが分岐するのを防ぐことをお勧めします。
サポートされているネットのargは次のとおりです。
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
通常、最良の精度のWeightsファイルは、名前の接尾辞「Best」(デフォルトのチェックポイントフォルダー)を使用してディスクに書き込まれます。
test.pyを使用してモデルをテストします
$ python test.py -net vgg16 -weights path_to_vgg16_weights_fileトレーニングのトリックを改善するためにトレーニングのトリックを使用しませんでした。トレーニングのトリックについて詳しく知りたい場合は、別のレポを参照してください。
紙のハイパーパラメーター設定に従って、カットアウトを備えた畳み込みニューラルネットワークの正則化の改善。これは、60番目、120、160番目のエポックで5で除算され、バッチサイズ128および重量減衰5E-4、ネステフモメンモム0.9で200エポックを訓練します。また、自信のある出力分布をペナルティとランダム消去データ増強をペナルティ化することにより、ニューラルネットワークを正規化する紙からハイパーパラメーターを使用することもできます。これは、初期のLR = 0.1、LRが150番目と225番目のエポックで10で割れ、バッチサイズ128で300エポックのトレーニングを行うこともできます。これはより一般的に使用されます。十分な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 | 2.36m | 31.92 | 09.02 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | スクイーズネット | 0.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 | 28.7m | 28.00 | 9.71 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | vgg16_bn | 34.0m | 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 | 21.3m | 23.24 | 6.63 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnet50 | 23.7m | 22.61 | 6.04 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnet101 | 42.7m | 22.22 | 5.61 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | ResNet152 | 58.3m | 22.31 | 5.81 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | preactresnet18 | 11.3m | 27.08 | 8.53 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET34 | 21.5m | 24.79 | 7.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET50 | 23.9m | 25.73 | 8.15 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET101 | 42.9m | 24.84 | 7.83 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | PREACTRESNET152 | 58.6m | 22.71 | 6.62 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | ResNext50 | 14.8m | 22.23 | 6.00 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnext101 | 25.3m | 22.22 | 5.99 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnext152 | 33.3m | 22.40 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 注意59 | 55.7m | 33.75 | 12.90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | 注意92 | 102.5m | 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 | 22.3m | 22.81 | 6.39 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | inceptionv4 | 41.3m | 24.14 | 6.90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | InceptionResnetv2 | 65.4m | 27.51 | 9.11 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Xception | 21.0m | 25.07 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | seresnet18 | 11.4m | 23.56 | 6.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | seresnet34 | 21.6m | 22.07 | 6.12 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | seresnet50 | 26.5m | 21.42 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | SERESNET101 | 47.7m | 20.98 | 5.41 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | seresnet152 | 66.2m | 20.66 | 5.19 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | ナスネット | 5.2m | 22.71 | 5.91 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | wideresnet-40-10 | 55.9m | 21.25 | 5.77 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | StochasticDepth18 | 11.22m | 31.40 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | StochasticDepth34 | 21.36m | 27.72 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | StochasticDepth50 | 23.71m | 23.35 | 5.76 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | StochasticDepth101 | 42.69m | 21.28 | 5.39 | 60 | 60 | 40 | 40 | 200 |