تنفيذ Senet ، المقترح في شبكات الضغط والإثارة من قبل Jie Hu و Li Shen و Gang Sun ، وهما الفائزون في مسابقة تصنيف 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 مع Dataset ImageNet (2012) ،
~/.torch/data أو تعيين enviroment متغير IMAGENET_ROOT=${PATH_TO_YOUR_IMAGENET}CUDA_VISIBLE_DEVICES . (على سبيل المثال CUDA_VISIBLE_DEVICES=1,2 لاستخدام GPU 1 و 2)بالنسبة إلى SE-Inception-V3 ، يكون حجم الإدخال مطلوبًا أن يكون 299x299 كإياص أصلي.
يتم اختبار قاعدة كود في الإعداد التالي.
لتشغيل cifar.py أو imagenet.py ، تحتاج
pip install git+https://github.com/moskomule/[email protected] يمكنك استخدام بعض se-ringnet ( 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" ))لا يمكنني الحفاظ على هذا المستودع بنشاط ، ولكن أي مساهمات مرحب بها. لا تتردد في إرسال PRS والقضايا.
ورق
تنفيذ الكافيين المؤلفين