Esta es una implementación de PyTorch del documento "Redes residuales mejoradas para el reconocimiento de imágenes y videos":
@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},
}
Los modelos entrenados en ImageNet se pueden encontrar aquí.
La iResNet (red residual mejorada) es capaz de mejorar la línea de base (ResNet) en términos de rendimiento de reconocimiento sin aumentar la cantidad de parámetros ni los costos computacionales. iResNet es muy eficaz para entrenar modelos muy profundos (consulte el documento para obtener más detalles).
La precisión en ImageNet (usando la configuración de entrenamiento predeterminada):
Red | 50 capas | 101 capas | 152 capas | 200 capas |
---|---|---|---|---|
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 el conjunto de datos de PyTorch e ImageNet siguiendo el código de entrenamiento oficial de PyTorch ImageNet.
Una alternativa rápida (sin necesidad de instalar PyTorch y otras bibliotecas de aprendizaje profundo) es usar NVIDIA-Docker, nosotros usamos esta imagen de contenedor.
Para entrenar un modelo (por ejemplo, iResNet con 50 capas) usando DataParallel, ejecute main.py
; También debe proporcionar result_path
(la ruta del directorio donde guardar los resultados y los registros) y --data
(la ruta al conjunto de datos de 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 entrenar utilizando el entrenamiento paralelo de datos distribuidos de multiprocesamiento, siga las instrucciones en el código de entrenamiento oficial de PyTorch ImageNet.