Esta é uma implementação PyTorch do artigo "Redes residuais aprimoradas para reconhecimento de imagem e vídeo":
@article{duta2020improved,
author = {Ionut Cosmin Duta and Li Liu and Fan Zhu and Ling Shao},
title = {Improved Residual Networks for Image and Video Recognition},
journal = {arXiv preprint arXiv:2004.04989},
year = {2020},
}
Os modelos treinados no ImageNet podem ser encontrados aqui.
A iResNet (rede residual melhorada) é capaz de melhorar a linha de base (ResNet) em termos de desempenho de reconhecimento sem aumentar o número de parâmetros e custos computacionais. O iResNet é muito eficaz no treinamento de modelos muito profundos (veja o artigo para detalhes).
A precisão no ImageNet (usando as configurações de treinamento padrão):
Rede | 50 camadas | 101 camadas | 152 camadas | 200 camadas |
---|---|---|---|---|
ResNet | 76,12% (modelo) | 78,00% (modelo) | 78,45% (modelo) | 77,55% (modelo) |
iResnet | 77,31 % (modelo) | 78,64 % (modelo) | 79,34 % (modelo) | 79,48 % (modelo) |
Instale o conjunto de dados PyTorch e ImageNet seguindo o código de treinamento oficial do PyTorch ImageNet.
Uma alternativa rápida (sem a necessidade de instalar PyTorch e outras bibliotecas de aprendizado profundo) é usar NVIDIA-Docker, usamos esta imagem de contêiner.
Para treinar um modelo (por exemplo, iResNet com 50 camadas) usando DataParallel execute main.py
; você também precisa fornecer result_path
(o caminho do diretório onde salvar os resultados e logs) e --data
(o caminho para o conjunto de dados ImageNet):
result_path=/your/path/to/save/results/and/logs/
mkdir -p ${result_path}
python main.py
--data /your/path/to/ImageNet/dataset/
--result_path ${result_path}
--arch iresnet
--model_depth 50
Para treinar usando treinamento paralelo de dados distribuídos de multiprocessamento, siga as instruções no código de treinamento oficial do PyTorch ImageNet.