Практика на Cifar100 с использованием pytorch
Это мой эксперимент
$ cd pytorch-cifar100Я буду использовать набор данных CIFAR100 от TOCHVISION, так как он более удобен, но я также сохранил пример кода для написания собственного модуля набора данных в папке набора данных, в качестве примера для людей не знают, как его написать.
Установите Tensorboard
$ 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
Обычно файл веса с наилучшей точностью будет записан на диск с именем суффикса «Лучший» (по умолчанию в папке контрольной точки).
Проверьте модель, используя test.py
$ python test.py -net vgg16 -weights path_to_vgg16_weights_fileЯ не использовал каких -либо учебных приемы, чтобы улучшить точность, если вы хотите узнать больше о тренировочных уловках, пожалуйста, обратитесь к моему другому репо, содержит различные общие тренировочные трюки и их реализации Pytorch.
Я следую застройкам гиперпараметра в бумаге, улучшенной регуляризации сверточных нейронных сетей с вырезом, который является init lr = 0,1 разделителя на 5 при 60-м, 120-м, 160-м эпохах, тренируется на 200 эпох с паттерной 128 и разъяснением веса 5E-4, Nesterov Momentum 0,9. Вы также можете использовать гиперпараметры из бумаги, регулирующих нейронные сети, оштрафовав уверенные распределения выходных данных и увеличение данных о случайном стирании, которое является первоначальным LR = 0,1, LR, разделяемой на 10 на 150 -й и 225 эпох, и обучение для 300 эпох с пакетом 128, это более часто используется. Вы могли бы уменьшить количество пакетов до 64 или чего -то еще, если у вас недостаточно памяти графического процессора.
Вы можете выбрать, использовать ли Tensorboard для визуализации процедуры обучения
Результат, который я могу получить от определенной модели, поскольку я использую одни и те же гиперпараметры для обучения всех сетей, некоторые сети могут не получить наилучшего результата от этих гиперпараметров, вы можете попробовать себя, создав гиперпараметры, чтобы получить лучший результат.
| набор данных | сеть | параметры | Top1 Err | top5 err | эпоха (LR = 0,1) | эпоха (LR = 0,02) | эпоха (LR = 0,004) | эпоха (LR = 0,0008) | общая эпоха |
|---|---|---|---|---|---|---|---|---|---|
| CIFAR100 | Mobilenet | 3,3 м | 34.02 | 10.56 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Mobilenetv2 | 2,36 м | 31.92 | 09.02 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Squeezenet | 0,78 м | 30.59 | 8.36 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Shufflenet | 1,0 м | 29,94 | 8.35 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Shufflenetv2 | 1,3 м | 30.49 | 8.49 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | vgg11_bn | 28,5 м | 31.36 | 11.85 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG13_BN | 28,7 м | 28.00 | 9.71 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG16_BN | 34,0 м | 27.07 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | VGG19_BN | 39,0 м | 27.77 | 8.84 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnet18 | 11,2 м | 24.39 | 6,95 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnet34 | 21,3 м | 23.24 | 6.63 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnet50 | 23,7 м | 22.61 | 6.04 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnet101 | 42,7 м | 22.22 | 5.61 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Resnet152 | 58,3 м | 22.31 | 5.81 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | preactresnet18 | 11,3 м | 27.08 | 8.53 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | preactresnet34 | 21,5 м | 24.79 | 7.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | preactresnet50 | 23,9 м | 25,73 | 8.15 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | preactresnet101 | 42,9 м | 24.84 | 7.83 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | preactresnet152 | 58,6 м | 22.71 | 6.62 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnext50 | 14,8 м | 22.23 | 6.00 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnext101 | 25,3 м | 22.22 | 5.99 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | resnext152 | 33,3 м | 22.40 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Внимание59 | 55,7 м | 33,75 | 12.90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | внимание92 | 102,5 м | 36.52 | 11.47 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Денсенет121 | 7,0 м | 22.99 | 6.45 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Денсенет161 | 26 м | 21.56 | 6.04 | 60 | 60 | 60 | 40 | 200 |
| CIFAR100 | Densenet201 | 18 м | 21.46 | 5.9 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Googlenet | 6,2 м | 21,97 | 5.94 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Началов3 | 22,3 м | 22.81 | 6.39 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Началова4 | 41,3 м | 24.14 | 6,90 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Началоререснев2 | 65,4м | 27,51 | 9.11 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | xception | 21,0 м | 25.07 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet18 | 11,4 м | 23.56 | 6.68 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet34 | 21,6 м | 22.07 | 6.12 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet50 | 26,5 м | 21.42 | 5.58 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet101 | 47,7 м | 20.98 | 5.41 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Seresnet152 | 66.2m | 20.66 | 5.19 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | Наснет | 5,2 м | 22.71 | 5.91 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | wideresnet-40-10 | 55,9 м | 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,36 м | 27,72 | 7.32 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | StochasticDepth50 | 23,71 м | 23.35 | 5.76 | 60 | 60 | 40 | 40 | 200 |
| CIFAR100 | StochasticDepth101 | 42,69 м | 21.28 | 5.39 | 60 | 60 | 40 | 40 | 200 |