Это реализация PyTorch статьи «Улучшенные остаточные сети для распознавания изображений и видео»:
@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},
}
Модели, обученные в ImageNet, можно найти здесь.
iResNet (улучшенная остаточная сеть) способна улучшить базовый уровень (ResNet) с точки зрения производительности распознавания без увеличения количества параметров и вычислительных затрат. iResNet очень эффективен при обучении очень глубоких моделей (подробности см. в статье).
Точность в ImageNet (с использованием настроек обучения по умолчанию):
Сеть | 50 слоев | 101 слой | 152 слоя | 200 слоев |
---|---|---|---|---|
РесНет | 76,12% (модель) | 78,00% (модель) | 78,45% (модель) | 77,55% (модель) |
iResnet | 77,31 % (модель) | 78,64 % (модель) | 79,34 % (модель) | 79,48 % (модель) |
Установите набор данных PyTorch и ImageNet, следуя официальному учебному коду PyTorch ImageNet.
Быстрая альтернатива (без необходимости установки PyTorch и других библиотек глубокого обучения) — использовать NVIDIA-Docker, мы использовали этот образ контейнера.
Чтобы обучить модель (например, iResNet с 50 слоями) с помощью DataParallel, запустите main.py
; вам также необходимо указать result_path
(путь к каталогу, в котором сохраняются результаты и журналы) и --data
(путь к набору данных 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
Для обучения с использованием параллельного обучения с многопроцессорной обработкой распределенных данных следуйте инструкциям в официальном учебном коде PyTorch ImageNet.