Practica en CIFAR100 usando Pytorch
Este es mi eviro experimento
$ cd pytorch-cifar100Usaré el conjunto de datos CIFAR100 de TorchVision ya que es más conveniente, pero también mantuve el código de muestra para escribir su propio módulo de conjunto de datos en la carpeta del conjunto de datos, como ejemplo para las personas que no saben cómo escribirlo.
Instalar tensorboard
$ pip install tensorboard
$ mkdir runs
Run tensorboard
$ tensorboard --logdir= ' runs ' --port=6006 --host= ' localhost 'Debe especificar la red que desea entrenar usando arg -net
# use gpu to train vgg16
$ python train.py -net vgg16 -gpu A veces, es posible que desee utilizar el entrenamiento de calentamiento mediante el set -warm a 1 o 2, para evitar que la red divergue durante la fase de entrenamiento temprano.
Los args de red apoyados son:
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
Normalmente, el archivo de pesas con la mejor precisión se escribiría en el disco con el sufijo de nombre 'mejor' (carpeta de punto de control predeterminado).
Pruebe el modelo usando test.py
$ python test.py -net vgg16 -weights path_to_vgg16_weights_fileNo utilicé ningún truco de entrenamiento para mejorar Accuray, si desea obtener más información sobre los trucos de capacitación, consulte mi otro repositorio, contiene varios trucos de entrenamiento comunes y sus implementaciones de Pytorch.
Sigo la configuración de hiperparameter en papel mejorado mejorado de redes neuronales convolucionales con recorte, que es init lr = 0.1 divide por 5 a 60, 120 °, 160 épocas, entrena para 200 épocas con lotes 128 y decena de peso 5e-4, impulso de 0.9. También puede usar los hiperparámetros de las redes neuronales de regularización de papel regularizando las distribuciones de salida seguras y el aumento de datos aleatorios, que es LR inicial = 0.1, LR dividido por 10 a 150 y 225 épocas, y capacitación para 300 epociones con lotes 128, esto es más comúnmente utilizado. Podrías disminuir el lote a 64 o lo que sea que te adapte, si no tienes suficiente memoria de GPU.
Puede elegir si utilizar TensorBoard para visualizar su procedimiento de entrenamiento
El resultado que puedo obtener de cierto modelo, ya que uso los mismos hiperparámetros para entrenar a todas las redes, algunas redes podrían no obtener el mejor resultado de estos hiperparámetros, podría probarlo finalmente sintonizando los hiperparámetros para obtener mejores resultados.
| conjunto de datos | red | parámetros | top1 err | top5 err | época (LR = 0.1) | época (LR = 0.02) | época (LR = 0.004) | época (LR = 0.0008) | época total |
|---|---|---|---|---|---|---|---|---|---|
| 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 | squeezenet | 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 | atención59 | 55.7m | 33.75 | 12.90 | 60 | 60 | 40 | 40 | 200 |
| cifar100 | atención92 | 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 | xcepción | 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 | nasnet | 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 | StocasticDepth101 | 42.69m | 21.28 | 5.39 | 60 | 60 | 40 | 40 | 200 |