Pratique no CIFAR100 usando Pytorch
Este é o meu experimento Eviroument
$ cd pytorch-cifar100Usarei o conjunto de dados CIFAR100 da TorchVision, pois é mais conveniente, mas também mantive o código de exemplo para escrever seu próprio módulo de conjunto de dados na pasta do conjunto de dados, como um exemplo para as pessoas não sabem como escrevê -lo.
Instale o Tensorboard
$ pip install tensorboard
$ mkdir runs
Run tensorboard
$ tensorboard --logdir= ' runs ' --port=6006 --host= ' localhost 'Você precisa especificar a rede que deseja treinar usando arg -net
# use gpu to train vgg16
$ python train.py -net vgg16 -gpu Às vezes, você pode querer usar o treinamento de aquecimento por conjunto -warm 1 ou 2, para evitar divergentes da rede durante a fase de treinamento precoce.
Os args líquidos suportados são:
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, o arquivo de pesos com a melhor precisão seria gravado no disco com o sufixo de nome 'melhor' (padrão na pasta do ponto de verificação).
Teste o modelo usando test.py
$ python test.py -net vgg16 -weights path_to_vgg16_weights_fileNão usei truques de treinamento para melhorar o Accuray, se você quiser aprender mais sobre truques de treinamento, consulte meu outro repositório, contém vários truques de treinamento comuns e suas implementações de Pytorch.
Eu sigo as configurações de hiperparâmetro no papel aprimorada regularização de redes neurais convolucionais com recutas, que é init lr = 0,1 dividir em 5 na 60ª, 120ª, 160ª épocas, treinar para 200 épocas com lotes 128 e decaimento de peso 5E-4, momento de nesterov de 0,9. Você também pode usar os hiperparâmetros das redes neurais regularizando em papel, penalizando distribuições confiantes de saída e apagamento aleatório de dados, que é LR inicial = 0,1, LR dividido por 10 na 150ª e 225ª épocas e o treinamento para 300 épocas com lote 128, isso é mais comumente usado. Você pode diminuir o lotes para 64 ou o que for adequado a você, se você não tiver memória GPU suficiente.
Você pode escolher se deve usar o Tensorboard para visualizar seu procedimento de treinamento
O resultado que posso obter de um determinado modelo, pois uso os mesmos hiperparâmetros para treinar todas as redes, algumas redes podem não obter o melhor resultado desses hiperparâmetros, você pode se tentar finalizando os hyperparameters para obter um melhor resultado.
| conjunto de dados | rede | params | top1 err | Top5 err | época (LR = 0,1) | Epoch (LR = 0,02) | Epoch (LR = 0,004) | Epoch (LR = 0,0008) | Epoch 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 | PreCtresnet18 | 11,3m | 27.08 | 8.53 | 60 | 60 | 40 | 40 | 200 |
| Cifar100 | PreCtresnet34 | 21,5m | 24.79 | 7.68 | 60 | 60 | 40 | 40 | 200 |
| Cifar100 | PreCtresnet50 | 23,9m | 25.73 | 8.15 | 60 | 60 | 40 | 40 | 200 |
| Cifar100 | PreCtresNet101 | 42,9m | 24.84 | 7.83 | 60 | 60 | 40 | 40 | 200 |
| Cifar100 | PreCtresNet152 | 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 | Atenção59 | 55,7m | 33.75 | 12.90 | 60 | 60 | 40 | 40 | 200 |
| Cifar100 | ATENTION92 | 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 | EMCCONTROV3 | 22,3m | 22.81 | 6.39 | 60 | 60 | 40 | 40 | 200 |
| Cifar100 | EMCCOMPENDV4 | 41.3m | 24.14 | 6.90 | 60 | 60 | 40 | 40 | 200 |
| Cifar100 | INCMECCENTESRESNETV2 | 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 | 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 | STOCHASTICDEPTH101 | 42.69m | 21.28 | 5.39 | 60 | 60 | 40 | 40 | 200 |