Il s'agit d'une lib pytorch avec des architectures de pointe, des modèles pré-entraînés et des résultats mis à jour en temps réel.
Ce référentiel vise à accélérer l'avancée de la recherche en profondeur, à rendre les résultats reproductibles et plus faciles à faire des recherches et à Pytorch.
- Senet: réseaux de compression et d'excitation (papier)
- SKNET: Réseaux de noyau sélectif (papier)
- CBAM: Module d'attention du bloc convolutionnel (papier)
- GCNET: GCNET: Les réseaux non locaux rencontrent les réseaux d'excitation compressibles et au-delà (papier)
- BAM: Module d'attention à goulot d'étranglement (papier)
- SGENET: Amélioration du groupe spatial: Amélioration de l'apprentissage des fonctionnalités sémantiques dans les réseaux de convolution (papier)
- SRMNET: SRM: Un module de recalibrage basé sur le style pour les réseaux de neurones convolutionnels (papier)
- OCTNET: Déposez une octave: Réduction de la redondance spatiale dans les réseaux de neurones convolutionnels avec convolution d'octave (papier)
- Imagenet_tricks.py: sac de trucs pour la classification d'images avec des réseaux de neurones convolutionnels (papier)
- Comprendre la disharmonie entre la famille de la normalisation du poids et la décroissance du poids: régularisateur L2 décalé en E (apparaître)
- Regardisateur lié à la généralisation: un cadre unifié pour comprendre la désintégration du poids (pour apparaître)
- Mélange: au-delà de la minimisation empirique des risques (papier)
- Cutmix: stratégie de régularisation pour former des classificateurs solides avec des fonctionnalités localisables (papier)
Erreur de validation des cultures unique sur ImageNet-1k (Centre 224x224 CREM à partir de l'image redimensionnée avec un côté plus court = 256).
| Paramètres de formation de classification pour les médias et les grands modèles | |
|---|---|
| Détails | Random Random ResizedCrop, RandomHorizontalflip; 0,1 init LR, 100 époques totales, décroissance à 30 époques; SGD avec perte d'entropie de croix Softmax naïve, décomposition de poids 1E-4, 0,9 Momentum, 8 GPU, 32 images par GPU |
| Exemples | Resnet50 |
| Note | Le code le plus récent ajoute une opération par défaut: définir tous les biais wd = 0, veuillez vous référer à l'analyse théorique du "régularisateur lié à la généralisation: un cadre unifié pour comprendre la désintégration de poids" (pour apparaître), ainsi la précision de la formation peut être légèrement augmentée |
| Paramètres de formation de classification pour les modèles mobiles / petits | |
|---|---|
| Détails | Random Random ResizedCrop, RandomHorizontalflip; 0,4 init LR, total 300 époques, 5 époques d'échauffement linéaire, décroissance Cosine LR; SGD avec softmax Cross Entropy Perte et étiquette lissage 0,1, 4e-5 Dérange de poids sur les poids convaincus, 0 décroissance de poids sur tous les autres poids, 0,9 Momentum, 8 GPU, 128 images par GPU |
| Exemples | 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
Notez les résultats suivants (Old) ne définis pas le biais wd = 0 pour les grands modèles
| Modèle | #P | Gflops | Top-1 ACC | Top-5 ACC | Téléchargement1 | Téléchargement2 | enregistrer |
|---|---|---|---|---|---|---|---|
| Shufflenetv2_1x | 2,28 m | 0,151 | 69.6420 | 88.7200 | Googledrive | shufflenetv2_1x.log | |
| Resnet50 | 25,56m | 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.15m | 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,56m | 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.33m | 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.33m | 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 |
Ici Sk-Resnet * est une version modifiée (pour une comparaison plus équitable avec Resnet Backbone ici) de SKNET d'origine. Les Sknets d'origine fonctionnent plus forts et la version Pytorch peut être référée dans Ppplang-Swet.
| Modèle | #p | Gflops | Détecteur | Cou | AP50: 95 (%) | AP50 (%) | AP75 (%) | Télécharger |
|---|---|---|---|---|---|---|---|---|
| Resnet50 | 23,51 m | 88.0 | RCNN plus rapide | FPN | 37.5 | 59.1 | 40.6 | Googledrive |
| SGE-RESNET50 | 23,51 m | 88.1 | RCNN plus rapide | FPN | 38.7 | 60.8 | 41.7 | Googledrive |
| Resnet50 | 23,51 m | 88.0 | Masque rcnn | FPN | 38.6 | 60.0 | 41.9 | Googledrive |
| SGE-RESNET50 | 23,51 m | 88.1 | Masque rcnn | FPN | 39.6 | 61.5 | 42.9 | Googledrive |
| Resnet50 | 23,51 m | 88.0 | RCNN en cascade | FPN | 41.1 | 59.3 | 44.8 | Googledrive |
| SGE-RESNET50 | 23,51 m | 88.1 | RCNN en cascade | FPN | 42.6 | 61.4 | 46.2 | Googledrive |
| Resnet101 | 42,50 m | 167.9 | RCNN plus rapide | FPN | 39.4 | 60.7 | 43.0 | Googledrive |
| SE-RESNET101 | 47,28m | 168.3 | RCNN plus rapide | FPN | 40.4 | 61.9 | 44.2 | Googledrive |
| SGE-RESNET101 | 42,50 m | 168.1 | RCNN plus rapide | FPN | 41.0 | 63.0 | 44.3 | Googledrive |
| Resnet101 | 42,50 m | 167.9 | Masque rcnn | FPN | 40.4 | 61.6 | 44.2 | Googledrive |
| SE-RESNET101 | 47,28m | 168.3 | Masque rcnn | FPN | 41.5 | 63.0 | 45.3 | Googledrive |
| SGE-RESNET101 | 42,50 m | 168.1 | Masque rcnn | FPN | 42.1 | 63.7 | 46.1 | Googledrive |
| Resnet101 | 42,50 m | 167.9 | RCNN en cascade | FPN | 42.6 | 60.9 | 46.4 | Googledrive |
| SE-RESNET101 | 47,28m | 168.3 | RCNN en cascade | FPN | 43.4 | 62.2 | 47.2 | Googledrive |
| SGE-RESNET101 | 42,50 m | 168.1 | RCNN en cascade | FPN | 44.4 | 63.2 | 48.4 | Googledrive |
Notez que les modèles suivants sont avec biais wd = 0.
| Modèle | Top-1 | Télécharger |
|---|---|---|
| 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-DenseNet201 (E = 1E-8) | 77,59 | Googledrive |
| Ws-shufflenetv1 (e = 1e-8) | 68.09 | Googledrive |
| Ws-shufflenetv2 (e = 1e-8) | 69.70 | Googledrive |
| WS-MOBILENETV1 (E = 1E-6) | 73.60 | Googledrive |
Si vous trouvez nos œuvres connexes utiles dans vos recherches, veuillez envisager de citer le document:
@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}
}