Implementación oficial de un operador neuronal como se describe en la invención: invertir la inherencia de la convolución para el reconocimiento visual (CVPR'21)
Por el dúo Li, Jie Hu, Changhu Wang, Xiangtai Li, Qi ella, Lei Zhu, Tong Zhang y Qifeng Chen

Tl; DR. involution es un primitivo neural de uso general que es versátil para un espectro de modelos de aprendizaje profundo en diferentes tareas de visión. involution une convolution y self-attention en el diseño, mientras que es más eficiente y efectivo que convolution , más simple que self-attention en la forma.


Si encuentra útil nuestro trabajo en su investigación, cite:
@InProceedings{Li_2021_CVPR,
author = {Li, Duo and Hu, Jie and Wang, Changhu and Li, Xiangtai and She, Qi and Zhu, Lei and Zhang, Tong and Chen, Qifeng},
title = {Involution: Inverting the Inherence of Convolution for Visual Recognition},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2021}
}
Este repositorio está completamente construido sobre los kits de herramientas OpenMMLab. Para cada tarea individual, los archivos de configuración y modelo siguen la misma organización de directorio que MMCLS, MMDET y MMSEG respectivamente, por lo que simplemente copie y paste a las ubicaciones correspondientes para comenzar.
Por ejemplo, en términos de evaluación de detectores
git clone https://github.com/open-mmlab/mmdetection # and install
# copy model files
cp det/mmdet/models/backbones/ * mmdetection/mmdet/models/backbones
cp det/mmdet/models/necks/ * mmdetection/mmdet/models/necks
cp det/mmdet/models/dense_heads/ * mmdetection/mmdet/models/dense_heads
cp det/mmdet/models/roi_heads/ * mmdetection/mmdet/models/roi_heads
cp det/mmdet/models/roi_heads/mask_heads/ * mmdetection/mmdet/models/roi_heads/mask_heads
cp det/mmdet/models/utils/ * mmdetection/mmdet/models/utils
cp det/mmdet/datasets/ * mmdetection/mmdet/datasets
# copy config files
cp det/configs/_base_/models/ * mmdetection/configs/_base_/models
cp det/configs/_base_/schedules/ * mmdetection/configs/_base_/schedules
cp det/configs/involution mmdetection/configs -r
# evaluate checkpoints
cd mmdetection
bash tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE} ] [--eval ${EVAL_METRICS} ]Para obtener una guía más detallada, consulte los tutoriales originales de MMCLS, MMDET y MMSEG.
Actualmente, proporcionamos una implementación eficiente en memoria del operador involuntario basado en Cupy. Instale esta biblioteca por adelantado. Un kernel CUDA personalizado provocaría una mayor aceleración en el hardware. ¡Cualquier contribución de la comunidad con respecto a esto es bienvenida!
Los parámetros/flops ↓ y el rendimiento ↑ en comparación con las líneas de base de la convolución están marcados entre paréntesis. Parte de estos puntos de control se obtiene en nuestras ejecuciones de reimplementación, cuyo rendimiento puede mostrar ligeras diferencias con las reportadas en nuestro artículo. Los modelos están entrenados con 64 GPU en Imagenet, 8 GPU en Coco y 4 GPU en paisajes urbanos.
| Modelo | Parámetros (m) | Flops (G) | Top-1 (%) | Top-5 (%) | Configuración | Descargar |
|---|---|---|---|---|---|---|
| Rednet-26 | 9.23 (32.8%↓) | 1.73 (29.2%↓) | 75.96 | 93.19 | configuración | modelo | registro |
| Rednet-38 | 12.39 (36.7%↓) | 2.22 (31.3%↓) | 77.48 | 93.57 | configuración | modelo | registro |
| Rednet-50 | 15.54 (39.5%↓) | 2.71 (34.1%↓) | 78.35 | 94.13 | configuración | modelo | registro |
| Rednet-101 | 25.65 (42.6%↓) | 4.74 (40.5%↓) | 78.92 | 94.35 | configuración | modelo | registro |
| Rednet-152 | 33.99 (43.5%↓) | 6.79 (41.4%↓) | 79.12 | 94.38 | configuración | modelo | registro |
Antes de sintonizar las siguientes tareas aguas abajo, descargue los pesos RedNet-50 pretrontrados de Imagenet y establezca el argumento pretrained en det/configs/_base_/models/*.py o seg/configs/_base_/models/*.py a su ruta local.
| Columna vertebral | Cuello | Cabeza | Estilo | LR SCHD | Parámetros (m) | Flops (G) | AP de la caja | Configuración | Descargar |
|---|---|---|---|---|---|---|---|---|---|
| Rednet-50-FPN | circunvolución | circunvolución | pytorch | 1x | 31.6 (23.9%↓) | 177.9 (14.1%↓) | 39.5 (1.8 ↑) | configuración | modelo | registro |
| Rednet-50-FPN | involución | circunvolución | pytorch | 1x | 29.5 (28.9%↓) | 135.0 (34.8%↓) | 40.2 (2.5 ↑) | configuración | modelo | registro |
| Rednet-50-FPN | involución | involución | pytorch | 1x | 29.0 (30.1%↓) | 91.5 (55.8%↓) | 39.2 (1.5 ↑) | configuración | modelo | registro |
| Columna vertebral | Cuello | Cabeza | Estilo | LR SCHD | Parámetros (m) | Flops (G) | AP de la caja | AP de máscara | Configuración | Descargar |
|---|---|---|---|---|---|---|---|---|---|---|
| Rednet-50-FPN | circunvolución | circunvolución | pytorch | 1x | 34.2 (22.6%↓) | 224.2 (11.5%↓) | 39.9 (1.5 ↑) | 35.7 (0.6 ↑) | configuración | modelo | registro |
| Rednet-50-FPN | involución | circunvolución | pytorch | 1x | 32.2 (27.1%↓) | 181.3 (28.5%↓) | 40.8 (2.4 ↑) | 36.4 (1.3 ↑) | configuración | modelo | registro |
| Rednet-50-FPN | involución | involución | pytorch | 1x | 29.5 (33.3%↓) | 104.6 (58.7%↓) | 39.6 (1.2 ↑) | 35.1 (0.0 ↑) | configuración | modelo | registro |
| Columna vertebral | Cuello | Estilo | LR SCHD | Parámetros (m) | Flops (G) | AP de la caja | Configuración | Descargar |
|---|---|---|---|---|---|---|---|---|
| Rednet-50-FPN | circunvolución | pytorch | 1x | 27.8 (26.3%↓) | 210.1 (12.2%↓) | 38.2 (1.6 ↑) | configuración | modelo | registro |
| Rednet-50-FPN | involución | pytorch | 1x | 26.3 (30.2%↓) | 199.9 (16.5%↓) | 38.2 (1.6 ↑) | configuración | modelo | registro |
| Método | Columna vertebral | Cuello | Tamaño de cultivo | LR SCHD | Parámetros (m) | Flops (G) | miou | Configuración | descargar |
|---|---|---|---|---|---|---|---|---|---|
| FPN | Rednet-50 | circunvolución | 512x1024 | 80000 | 18.5 (35.1%↓) | 293.9 (19.0%↓) | 78.0 (3.6 ↑) | configuración | modelo | registro |
| FPN | Rednet-50 | involución | 512x1024 | 80000 | 16.4 (42.5%↓) | 205.2 (43.4%↓) | 79.1 (4.7 ↑) | configuración | modelo | registro |
| Upnet | Rednet-50 | circunvolución | 512x1024 | 80000 | 56.4 (15.1%↓) | 1825.6 (3.6%↓) | 80.6 (2.4 ↑) | configuración | modelo | registro |