Реализация Senet, предложенная в сетях сжимания и сдачи Цзи Ху, Ли Шен и Банг Сан, которые являются победителями конкурса классификации ILSVRC 2017.
Теперь SE-Resnet (18, 34, 50, 101, 152/20, 32) и SE-Inception-V3 реализованы.
python cifar.py запускает se-resnet20 с набором данных CiFAR10.
python imagenet.py и python -m torch.distributed.launch --nproc_per_node=${NUM_GPUS} imagenet.py Run Se -resnet50 с ImageNet (2012) Набор данных,
~/.torch/data или установить переменную среды IMAGENET_ROOT=${PATH_TO_YOUR_IMAGENET}CUDA_VISIBLE_DEVICES . (например, CUDA_VISIBLE_DEVICES=1,2 для использования графического процессора 1 и 2)Для SE-Inception-V3 размер входа должен быть 299x299 в качестве исходного создания.
Кодовая база проверяется в следующем настройке.
Чтобы запустить cifar.py или imagenet.py , вам нужно
pip install git+https://github.com/moskomule/[email protected] Вы можете использовать SE-RESNET ( se_resnet{20, 56, 50, 101} ) через torch.hub .
import torch . hub
hub_model = torch . hub . load (
'moskomule/senet.pytorch' ,
'se_resnet20' ,
num_classes = 10 )Кроме того, доступна предварительная модель SE-Resnet50.
import torch . hub
hub_model = torch . hub . load (
'moskomule/senet.pytorch' ,
'se_resnet50' ,
pretrained = True ,) python cifar.py [--baseline]
Обратите внимание, что набор данных CIFAR-10, который, как ожидается, будет находиться в рамках ~/.torch/data .
| Resnet20 | Se-resnet20 (сокращение 4 или 8) | |
|---|---|---|
| максимум Точность теста | 92% | 93% |
python [-m torch.distributed.launch --nproc_per_node=${NUM_GPUS}] imagenet.py
Вариант [-m ...] предназначен для распределенного обучения. Обратите внимание, что набор данных ImageNet, как ожидается, будет находиться в соответствии с ~/.torch/data или указан как IMAGENET_ROOT=${PATH_TO_IMAGENET} .
Первоначальная скорость обучения и мини-размеры отличаются от исходной версии из-за моего вычислительного ресурса .
| Resnet | SE-Resnet | |
|---|---|---|
| максимум Точность теста (TOP1) | 76,15 %(*) | 77,06% (**) |
(*): Resnet-50 в Torchvision
(**): при использовании imagenet.py с настройкой --distributed 8 графических процессорах. Вес доступен.
# !wget https://github.com/moskomule/senet.pytorch/releases/download/archive/seresnet50-60a8950a85b2b.pkl
senet = se_resnet50 ( num_classes = 1000 )
senet . load_state_dict ( torch . load ( "seresnet50-60a8950a85b2b.pkl" ))Я не могу активно поддерживать этот репозиторий, но любые вклад приветствуются. Не стесняйтесь отправлять PR и проблемы.
бумага
Реализация авторов CAFFE