Это реализация PyTorch нашей статьи «Пирамидальная свертка: переосмысление сверточных нейронных сетей для визуального распознавания». (Обратите внимание, что это код для распознавания изображений в ImageNet. Для семантической сегментации/анализа изображений обратитесь к этому репозиторию: https://github.com/iduta/pyconvsegnet)
Модели, обученные в ImageNet, можно найти здесь.
PyConv может обеспечить улучшенные возможности распознавания по сравнению с базовым вариантом (подробности см. в документе).
Точность в ImageNet (с использованием настроек обучения по умолчанию):
Сеть | 50 слоев | 101 слой | 152 слоя |
---|---|---|---|
РесНет | 76,12% (модель) | 78,00% (модель) | 78,45% (модель) |
PyConvHGResNet | 78,48 % (модель) | 79,22 % (модель) | 79,36 % (модель) |
Пиконвреснет | 77,88 % (модель) | 79,01 % (модель) | 79,52 % (модель) |
Точность в ImageNet можно значительно повысить, используя более сложные настройки обучения (например, используя дополнительное увеличение данных (CutMix), увеличьте размер баха до 1024, скорость обучения 0,4, косинусный планировщик более 300 эпох и используйте смешанную точность для ускорения обучения. ):
Сеть | тестовый кадр: 224×224 | тестовый кадр: 320×320 | |
---|---|---|---|
PyConvResNet-50 (+дополнение) | 79,44 | 80,59 | (модель) |
PyConvResNet-101 (+дополнение) | 80,58 | 81,49 | (модель) |
Установите набор данных PyTorch и ImageNet, следуя официальному учебному коду PyTorch ImageNet.
Быстрая альтернатива (без необходимости установки PyTorch и других библиотек глубокого обучения) — использовать NVIDIA-Docker, мы использовали этот образ контейнера.
Чтобы обучить модель (например, PyConvResNet с 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 pyconvresnet
--model_depth 50
Для обучения с использованием параллельного обучения с многопроцессорной обработкой распределенных данных следуйте инструкциям в официальном учебном коде PyTorch ImageNet.
Если наша работа окажется для вас полезной, пожалуйста, цитируйте:
@article{duta2020pyramidal,
author = {Ionut Cosmin Duta and Li Liu and Fan Zhu and Ling Shao},
title = {Pyramidal Convolution: Rethinking Convolutional Neural Networks for Visual Recognition},
journal = {arXiv preprint arXiv:2006.11538},
year = {2020},
}