Este es un Pytorch LIB con arquitecturas de última generación, modelos previos a la aparición y resultados actualizados en tiempo real.
Este repositorio tiene como objetivo acelar el avance de la investigación de aprendizaje profundo, facilitar los resultados reproducibles y más fácil para hacer investigaciones y en Pytorch.
- Senet: redes de compresión y excitación (papel)
- Sknet: redes selectivas de kernel (papel)
- CBAM: Módulo de atención del bloque de convoluciones (papel)
- GCNET: GCNET: las redes no locales se encuentran con redes de excitación Squeeze-Excitation y más allá (papel)
- BAM: módulo de atención de cuello de botella (papel)
- SGENET: Mejora espacial en cuanto al grupo: Mejora del aprendizaje de características semánticas en redes convolucionales (papel)
- SRMNET: SRM: un módulo de recalibración basado en estilo para redes neuronales convolucionales (papel)
- OCTNET: Drop a Octave: Reducción de la redundancia espacial en redes neuronales convolucionales con convolución de octava (papel)
- imagenet_tricks.py: bolsa de trucos para la clasificación de imágenes con redes neuronales convolucionales (papel)
- Comprensión de la falta de armonía entre la familia de la normalización de peso y la descomposición de peso: regularizador L2 desplazado (aparecer)
- Generalization Bound Reglityer: un marco unificado para comprender la descomposición de peso (aparecer)
- Mezcla: más allá de la minimización del riesgo empírico (papel)
- Cutmix: Estrategia de regularización para entrenar clasificadores fuertes con características localizables (papel)
Error de validación de cultivos únicos en ImageNet-1K (centro 224x224 de la imagen redimensionada con el lado más corto = 256).
| Configuración de capacitación de clasificación para medios y modelos grandes | |
|---|---|
| Detalles | RandomResizedCrop, RandomHorizontalflip; 0.1 init lr, total 100 épocas, descomposición en cada 30 épocas; SGD con pérdida ingenua de entropía cruzada Softmax, decaimiento de peso 1e-4, 0.9 impulso, 8 GPU, 32 imágenes por GPU |
| Ejemplos | Resnet50 |
| Nota | El código más nuevo agrega una operación predeterminada: configurar todo el sesgo wd = 0, consulte el análisis teórico del "regularizador de generalización unido: un marco unificado para comprender la descomposición de peso" (para aparecer), por lo tanto, la precisión de la capacitación puede impulsarse ligeramente |
| Configuración de capacitación de clasificación para modelos móviles/pequeños | |
|---|---|
| Detalles | RandomResizedCrop, RandomHorizontalflip; 0.4 init LR, total 300 épocas, 5 épocas de calentamiento lineal, descomposición de Cosine LR; SGD con pérdida de entropía cruzada Softmax y suavizado de etiqueta 0.1, 4e-5 de peso de peso en pesos de convivencia, 0 peso de peso en todos los demás pesos, 0.9 impulso, 8 GPU, 128 imágenes por GPU |
| Ejemplos | 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
Tenga en cuenta los siguientes resultados (antiguos) no establece el sesgo WD = 0 para modelos grandes
| Modelo | #PAG | Gflops | Top-1 ACC | Top-5 ACC | Descargar1 | Descargar2 | registro |
|---|---|---|---|---|---|---|---|
| Shufflenetv2_1x | 2.28m | 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.92m | 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.55m | 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.68m | 7.978 | 78.7920 | 94.2680 | Baidudrive (Boii) | Googledrive | sk_resnet101.log |
| BAM-RESNET101 | 44.91m | 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.55m | 7.858 | 78.7980 | 94.3680 | Baidudrive (WQN6) | Googledrive | SGE_RESNET101.log |
Aquí SK-Resnet* es una versión modificada (para una comparación más justa con la columna vertebral de ResNet aquí) de SKNet original. Los sknets originales funcionan más fuertes, y la versión de Pytorch se puede referir en PPPLANG-SKNET.
| Modelo | #pag | Gflops | Detector | Cuello | AP50: 95 (%) | AP50 (%) | AP75 (%) | Descargar |
|---|---|---|---|---|---|---|---|---|
| Resnet50 | 23.51m | 88.0 | Rcnn más rápido | FPN | 37.5 | 59.1 | 40.6 | Googledrive |
| SGE-RESNET50 | 23.51m | 88.1 | Rcnn más rápido | FPN | 38.7 | 60.8 | 41.7 | Googledrive |
| Resnet50 | 23.51m | 88.0 | Enmascarar rcnn | FPN | 38.6 | 60.0 | 41.9 | Googledrive |
| SGE-RESNET50 | 23.51m | 88.1 | Enmascarar rcnn | FPN | 39.6 | 61.5 | 42.9 | Googledrive |
| Resnet50 | 23.51m | 88.0 | Cascad rcnn | FPN | 41.1 | 59.3 | 44.8 | Googledrive |
| SGE-RESNET50 | 23.51m | 88.1 | Cascad rcnn | FPN | 42.6 | 61.4 | 46.2 | Googledrive |
| Resnet101 | 42.50m | 167.9 | Rcnn más rápido | FPN | 39.4 | 60.7 | 43.0 | Googledrive |
| SE-Resnet101 | 47.28m | 168.3 | Rcnn más rápido | FPN | 40.4 | 61.9 | 44.2 | Googledrive |
| SGE-RESNET101 | 42.50m | 168.1 | Rcnn más rápido | FPN | 41.0 | 63.0 | 44.3 | Googledrive |
| Resnet101 | 42.50m | 167.9 | Enmascarar rcnn | FPN | 40.4 | 61.6 | 44.2 | Googledrive |
| SE-Resnet101 | 47.28m | 168.3 | Enmascarar rcnn | FPN | 41.5 | 63.0 | 45.3 | Googledrive |
| SGE-RESNET101 | 42.50m | 168.1 | Enmascarar rcnn | FPN | 42.1 | 63.7 | 46.1 | Googledrive |
| Resnet101 | 42.50m | 167.9 | Cascad rcnn | FPN | 42.6 | 60.9 | 46.4 | Googledrive |
| SE-Resnet101 | 47.28m | 168.3 | Cascad rcnn | FPN | 43.4 | 62.2 | 47.2 | Googledrive |
| SGE-RESNET101 | 42.50m | 168.1 | Cascad rcnn | FPN | 44.4 | 63.2 | 48.4 | Googledrive |
Tenga en cuenta que los siguientes modelos son con sesgo WD = 0.
| Modelo | Top-1 | Descargar |
|---|---|---|
| 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 encuentra útiles nuestros trabajos relacionados en su investigación, considere citar el documento:
@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}
}