Este artículo explica la integración y el uso del módulo de atención CBAM (Convolutional Block Attention Module) dentro de un proyecto PyTorch. El código de referencia proviene del repositorio oficial para los artículos de BAM y CBAM.
Estructura del Proyecto y Archivos Principales
La organización del repositorio es la siguiente:
.
├── README.md
├── models
│ ├── cbam.py
│ └── ...
├── datasets
│ ├── cifar10.py
│ └── imagenet.py
├── main.py
└── utils
├── config.py
└── train.py
La carpeta models contiene la definición del módulo de atención en cbam.py. datasets maneja la carga de datos para conjuntos como CIFAR-10 e ImageNet. main.py es el punto de entrada principal del programa, y utils incluye utilidades para la configuración y el bucle de entrenamiento.
Archivo de Inicio: main.py
El script main.py orquesta el flujo de trabajo completo:
- Lee los parámetros de configuración desde
utils/config.py. - Prepara el conjunto de datos seleccionado.
- Construye el modelo de red neuronal que incorpora el módulo CBAM.
- Define el criterio de pérdida y el optimizador.
- Ejecuta el entrenamiento y la validación mediante funciones en
utils/train.py.
Los comportamientos del entrenamiento se controlan ajustando los parámetros en config.py antes de ejecutar main.py.
Gestión de la Configuración
Los hiperparámetros se centralizan en la clase Config dentro de utils/config.py. Los campos disponibles incluyen:
model_name: Identificador para la arquitectura del modelo.dataset: Nombre del conjunto de datos (ej:'cifar10','imagenet').batch_size: Tamaño del lote.num_epochs: Número total de épocas.lr: Tasa de aprendizaje inicial.weight_decay: Factor de decaimiento de peso.resume: Indicador booleano para continuar desde un checkpoint.checkpoint_path: Ruta al archivo del checkpoint.
Proceso de Instalación y Ejecución
Para utilizar el proyecto, sigue estos pasos:
- Obtén el código fuente: ```
git clone https://github.com/Jongchan/attention-module.git
- Instala las dependencias de Python: ```
pip install -r requirements.txt
- Modifcia los parámetros en
config.pysegún tus necesidades. - Inicia el entrenamietno ejecutando: ```
python main.py