Dies ist eine Pytorch-LiB mit hochmodernen Architekturen, vorgezogenen Modellen und aktualisierten Echtzeit-Ergebnissen.
Dieses Repository zielt darauf ab, den Fortschritt der Deep -Learning -Forschung zu beschleunigen, reproduzierbare Ergebnisse zu erzielen und für Forschungen und in Pytorch einfacher zu machen.
- Senet: Squeeze-and-Excitation-Netzwerke (Papier)
- SKNET: Selektive Kernel -Netzwerke (Papier)
- CBAM: Faltungsblock -Aufmerksamkeitsmodul (Papier)
- GCNET: GCNET: Nicht-lokale Netzwerke treffen Squeeze-Anreiznetzwerke und darüber hinaus (Papier)
- BAM: Engpass -Aufmerksamkeitsmodul (Papier)
- SGENET: Räumlich gruppenbezogene Verbesserung: Verbesserung des semantischen Feature-Lernens in Faltungsnetzwerken (Papier)
- SRMNET: SRM: Ein stilbasiertes Rekalibrierungsmodul für Faltungsnetzwerke (Papier)
- OCTNET: Lassen Sie eine Oktave fallen lassen
- ImagEnet_tricks.py: Tricks für die Bildklassifizierung mit Faltungsnetzwerken (Papier)
- Verständnis der Disharmonie zwischen der Familie der Gewichtsnormalisierung und dem Gewichtsverfall: E-veränderter L2-Ilegraphizer (zu erscheinen)
- Generalisierungsgebundener Regularizer: Ein einheitlicher Rahmen zum Verständnis des Gewichtsabfalls (erscheinen)
- Mischung: Über empirische Risikominimierung hinaus (Papier)
- Cutmix: Regularisierungsstrategie, um starke Klassifizierer mit lokalisierbaren Merkmalen zu schulen (Papier)
Einzelpreis-Validierungsfehler auf ImageNET-1K (Center 224x224 Ernte aus der Größe der Größe mit kürzerer Seite = 256).
| Schulungseinstellungen für Medien und große Modelle klassifiziert | |
|---|---|
| Details | RandomResizedCrop, randomHorizontalflip; 0,1 init lr, insgesamt 100 Epochen, zerfallen auf jeweils 30 Epochen; SGD mit naiver Softmax-Kreuzentropieverlust, 1E-4-Gewichtsverfall, 0,9 Impuls, 8 GPUs, 32 Bilder pro GPU |
| Beispiele | Resnet50 |
| Notiz | Der neueste Code fügt einen Standardvorgang hinzu: Setzen Sie alle Vorspannungen WD = 0. Siehe die theoretische Analyse von "Generalisierungsgebundenen Stammizer: Ein einheitlicher Rahmen für das Verständnis des Gewichtsabfalls" (zu erscheinen), wodurch die Trainingsgenauigkeit geringfügig gestärkt werden kann |
| Classifiaction -Trainingseinstellungen für mobile/kleine Modelle | |
|---|---|
| Details | RandomResizedCrop, randomHorizontalflip; 0,4 init lr, insgesamt 300 Epochen, 5 lineare Aufwärmen -Epochen, Cosinus LR -Zerfall; SGD mit Softmax Cross-Entropie-Verlust und Etikettenglättung von 0,1, 4E-5 Gewichtsverfall bei Überzeugungsgewichten, 0 Gewichtsverfall bei allen anderen Gewichten, 0,9 Impuls, 8 GPUs, 128 Bilder pro GPU |
| Beispiele | SHUFFLENETV2 |
python -m torch.distributed.launch --nproc_per_node=8 imagenet_mobile.py --cos -a shufflenetv2_1x --data /path/to/imagenet1k/
--epochs 300 --wd 4e-5 --gamma 0.1 -c checkpoints/imagenet/shufflenetv2_1x --train-batch 128 --opt-level O0 --nowd-bn # Triaing
python -m torch.distributed.launch --nproc_per_node=2 imagenet_mobile.py -a shufflenetv2_1x --data /path/to/imagenet1k/
-e --resume ../pretrain/shufflenetv2_1x.pth.tar --test-batch 100 --opt-level O0 # Testing, ~69.6% top-1 Acc
python -W ignore imagenet.py -a sge_resnet101 --data /path/to/imagenet1k/ --epochs 100 --schedule 30 60 90
--gamma 0.1 -c checkpoints/imagenet/sge_resnet101 --gpu-id 0,1,2,3,4,5,6,7 # Training
python -m torch.distributed.launch --nproc_per_node=8 imagenet_fast.py -a sge_resnet101 --data /path/to/imagenet1k/
--epochs 100 --schedule 30 60 90 --wd 1e-4 --gamma 0.1 -c checkpoints/imagenet/sge_resnet101 --train-batch 32
--opt-level O0 --wd-all --label-smoothing 0. --warmup 0 # Training (faster)
python -W ignore imagenet.py -a sge_resnet101 --data /path/to/imagenet1k/ --gpu-id 0,1 -e --resume ../pretrain/sge_resnet101.pth.tar
# Testing ~78.8% top-1 Acc
python -m torch.distributed.launch --nproc_per_node=2 imagenet_fast.py -a sge_resnet101 --data /path/to/imagenet1k/ -e --resume
../pretrain/sge_resnet101.pth.tar --test-batch 100 --opt-level O0 # Testing (faster) ~78.8% top-1 Acc
python -m torch.distributed.launch --nproc_per_node=8 imagenet_fast.py -a ws_resnet50 --data /share1/public/public/imagenet1k/
--epochs 100 --schedule 30 60 90 --wd 1e-4 --gamma 0.1 -c checkpoints/imagenet/es1e-3_ws_resnet50 --train-batch 32
--opt-level O0 --label-smoothing 0. --warmup 0 --nowd-conv --mineps 1e-3 --el2
Beachten Sie die folgenden Ergebnisse (alt) setzen die Vorspannung WD = 0 für große Modelle nicht ein
| Modell | #P | Gflops | Top-1 ACC | Top-5 ACC | Download1 | Download2 | Protokoll |
|---|---|---|---|---|---|---|---|
| SHUFFLENETV2_1X | 2,28 m | 0,151 | 69.6420 | 88.7200 | Googledrive | SHUFFLENETV2_1X.LOG | |
| Resnet50 | 25,56 m | 4.122 | 76.3840 | 92.9080 | Baidudrive (Zuvx) | Googledrive | old_resnet50.log |
| SE-RESNET50 | 28.09m | 4.130 | 77.1840 | 93.6720 | |||
| Sk-resnet50* | 26,15 m | 4.185 | 77.5380 | 93.7000 | Baidudrive (TFWN) | Googledrive | sk_resnet50.log |
| BAM-RESNET50 | 25,92 m | 4.205 | 76.8980 | 93.4020 | Baidudrive (Z0H3) | Googledrive | bam_resnet50.log |
| Cbam-resnet50 | 28.09m | 4.139 | 77.6260 | 93.6600 | Baidudrive (Bram) | Googledrive | cbam_resnet50.log |
| SGE-RESNET50 | 25,56 m | 4.127 | 77.5840 | 93.6640 | Baidudrive (GXO9) | Googledrive | sge_resnet50.log |
| Resnet101 | 44,55 m | 7.849 | 78,2000 | 93.9060 | Baidudrive (JS5T) | Googledrive | old_resnet101.log |
| SE-RESNET101 | 49,33 m | 7.863 | 78.4680 | 94.1020 | Baidudrive (J2ox) | Googledrive | se_resnet101.log |
| Sk-resnet101* | 45,68 m | 7.978 | 78.7920 | 94.2680 | Baidudrive (BOII) | Googledrive | sk_resnet101.log |
| BAM-RESNET101 | 44,91 m | 7.933 | 78.2180 | 94.0180 | Baidudrive (4BW6) | Googledrive | BAM_RESNET101.log |
| Cbam-resnet101 | 49,33 m | 7.879 | 78.3540 | 94.0640 | Baidudrive (Syj3) | Googledrive | cbam_resnet101.log |
| SGE-RESNET101 | 44,55 m | 7.858 | 78.7980 | 94.3680 | Baidudrive (WQN6) | Googledrive | sge_resnet101.log |
Hier ist SK-RESNET* eine modifizierte Version (für einen fairen Vergleich mit ResNet Backbone hier) des Original-SKNET. Die Original-SKNETs werden stärker und die Pytorch-Version kann in Ppplang-SKET verwiesen werden.
| Modell | #P | Gflops | Detektor | Nacken | AP50: 95 (%) | AP50 (%) | AP75 (%) | Herunterladen |
|---|---|---|---|---|---|---|---|---|
| Resnet50 | 23,51 m | 88.0 | Schneller rcnn | Fpn | 37,5 | 59.1 | 40.6 | Googledrive |
| SGE-RESNET50 | 23,51 m | 88.1 | Schneller rcnn | Fpn | 38,7 | 60.8 | 41.7 | Googledrive |
| Resnet50 | 23,51 m | 88.0 | Mask RCNN | Fpn | 38.6 | 60.0 | 41.9 | Googledrive |
| SGE-RESNET50 | 23,51 m | 88.1 | Mask RCNN | Fpn | 39.6 | 61,5 | 42.9 | Googledrive |
| Resnet50 | 23,51 m | 88.0 | Kaskade rcnn | Fpn | 41.1 | 59.3 | 44,8 | Googledrive |
| SGE-RESNET50 | 23,51 m | 88.1 | Kaskade rcnn | Fpn | 42.6 | 61.4 | 46,2 | Googledrive |
| Resnet101 | 42,50 m | 167.9 | Schneller rcnn | Fpn | 39.4 | 60.7 | 43.0 | Googledrive |
| SE-RESNET101 | 47,28 m | 168.3 | Schneller rcnn | Fpn | 40.4 | 61.9 | 44,2 | Googledrive |
| SGE-RESNET101 | 42,50 m | 168.1 | Schneller rcnn | Fpn | 41.0 | 63.0 | 44.3 | Googledrive |
| Resnet101 | 42,50 m | 167.9 | Mask RCNN | Fpn | 40.4 | 61.6 | 44,2 | Googledrive |
| SE-RESNET101 | 47,28 m | 168.3 | Mask RCNN | Fpn | 41,5 | 63.0 | 45,3 | Googledrive |
| SGE-RESNET101 | 42,50 m | 168.1 | Mask RCNN | Fpn | 42.1 | 63.7 | 46.1 | Googledrive |
| Resnet101 | 42,50 m | 167.9 | Kaskade rcnn | Fpn | 42.6 | 60.9 | 46,4 | Googledrive |
| SE-RESNET101 | 47,28 m | 168.3 | Kaskade rcnn | Fpn | 43.4 | 62.2 | 47,2 | Googledrive |
| SGE-RESNET101 | 42,50 m | 168.1 | Kaskade rcnn | Fpn | 44.4 | 63.2 | 48,4 | Googledrive |
Beachten Sie, dass die folgenden Modelle mit Verzerrung wd = 0 sind.
| Modell | Top-1 | Herunterladen |
|---|---|---|
| WS-RESNET50 | 76,74 | Googledrive |
| WS-RESNET50 (E = 1E-3) | 76,86 | Googledrive |
| WS-RESNET101 | 78.07 | Googledrive |
| WS-RESNET101 (E = 1E-6) | 78,29 | Googledrive |
| WS-RESNEXT50 (E = 1E-3) | 77,88 | Googledrive |
| WS-RESNEXT101 (E = 1E-3) | 78,80 | Googledrive |
| WS-demsenet201 (e = 1E-8) | 77,59 | Googledrive |
| WS-Awardlenetv1 (E = 1E-8) | 68.09 | Googledrive |
| WS-Awardlenetv2 (E = 1E-8) | 69.70 | Googledrive |
| WS-Mobilenetv1 (e = 1E-6) | 73,60 | Googledrive |
Wenn Sie unsere verwandten Werke in Ihrer Forschung nützlich finden, sollten Sie das Papier zitieren:
@inproceedings{li2019selective,
title={Selective Kernel Networks},
author={Li, Xiang and Wang, Wenhai and Hu, Xiaolin and Yang, Jian},
journal={IEEE Conference on Computer Vision and Pattern Recognition},
year={2019}
}
@inproceedings{li2019spatial,
title={Spatial Group-wise Enhance: Enhancing Semantic Feature Learning in Convolutional Networks},
author={Li, Xiang and Hu, Xiaolin and Xia, Yan and Yang, Jian},
journal={arXiv preprint arXiv:1905.09646},
year={2019}
}
@inproceedings{li2019understanding,
title={Understanding the Disharmony between Weight Normalization Family and Weight Decay: e-shifted L2 Regularizer},
author={Li, Xiang and Chen, Shuo and Yang, Jian},
journal={arXiv preprint arXiv:},
year={2019}
}
@inproceedings{li2019generalization,
title={Generalization Bound Regularizer: A Unified Framework for Understanding Weight Decay},
author={Li, Xiang and Chen, Shuo and Gong, Chen and Xia, Yan and Yang, Jian},
journal={arXiv preprint arXiv:},
year={2019}
}