Descripción
Este repositorio de GitHub, locuslab/convmixer, alberga la implementación de ConvMixer, una arquitectura de red neuronal detallada en el artículo de ICLR 2022 titulado "Patches Are All You Need? 🤷" por Asher Trockman y Zico Kolter. El código principal para el modelo ConvMixer se encuentra en `convmixer.py`. El proyecto aprovecha el framework `pytorch-image-models` (timm) para el entrenamiento e incluye modificaciones a este framework para soportar ConvMixers.
Leer más
Las modificaciones clave dentro del framework `pytorch-image-models` incluyen la adición de `timm/models/convmixer.py`, actualizaciones a `timm/models/__init__.py`, y la integración de un planificador de tasa de aprendizaje "OneCycle" con los archivos de planificador correspondientes. Si bien se menciona el planificador OneCycle, los autores sugieren que los planificadores cosenoidales estándar también podrían ser efectivos para entrenar ConvMixers.
El repositorio ofrece pesos de modelos pre-entrenados para varias variantes de ConvMixer, incluyendo ConvMixer-1536/20, ConvMixer-768/32 y ConvMixer-1024/20, con detalles sobre su tamaño de kernel, tamaño de parche y tamaño de archivo. Se proporcionan instrucciones y comandos de ejemplo para evaluar estos modelos en conjuntos de datos como ImageNet-1k, con el objetivo de obtener alta precisión. Por ejemplo, se espera que ConvMixer-1536/20 alcance una precisión del 81.37% en la validación de ImageNet-1k.
También se detalla el entrenamiento de ConvMixers, con un comando de ejemplo para entrenamiento distribuido en una configuración multi-GPU utilizando ImageNet-1k. El comando de entrenamiento especifica hiperparámetros como el tamaño del lote, el número de trabajadores, el optimizador, las épocas, el planificador de tasa de aprendizaje, las técnicas de aumento (por ejemplo, RandAugment, CutMix, MixUp) y el tamaño de entrada. El repositorio también incluye una versión simplificada y "tuiteable" de la arquitectura ConvMixer en Python.
Además, se enlaza un repositorio separado para entrenar ConvMixers en CIFAR-10, y se ofrecen consejos sobre cómo ajustar parámetros de entrenamiento como `--scale` para tamaños de entrada más pequeños. El proyecto es de código abierto bajo la licencia MIT, fomentando la contribución de la comunidad y el desarrollo futuro.
- CategoríaModelos de IA y LLM
- Modelo de preciosCódigo abierto
- ImplementaciónNube, Autoalojado
- PlataformasWeb
Características principales de ConvMixer
Implementación de la arquitectura de red neuronal ConvMixer
Basado en el artículo de investigación "Patches Are All You Need? 🤷"
Incluye código para entrenar ConvMixers
Proporciona pesos de modelos pre-entrenados para evaluación
Soporta entrenamiento en los conjuntos de datos ImageNet-1k y CIFAR-10
Aprovecha el framework `pytorch-image-models` (timm)
Incluye una implementación del planificador de tasa de aprendizaje "OneCycle"
Ofrece comandos de ejemplo para la evaluación de modelos
Incluye comandos de ejemplo para entrenamiento distribuido
Contiene una versión simplificada y "tuiteable" del modelo ConvMixer
Pesos del modelo disponibles para descarga
Código abierto bajo la licencia MIT
Primeros pasos con ConvMixer
Acceder al Modelo: Clona el repositorio de GitHub en tu máquina local.
Configurar Entorno: Instala las bibliotecas de Python necesarias, incluyendo PyTorch y `pytorch-image-models`.
Cargar Modelo: Instancia un modelo ConvMixer utilizando los scripts de Python proporcionados.
Evaluar Modelo: Utiliza el script `validate.py` con los pesos descargados y un conjunto de datos de validación.
Entrenar Modelo: Ejecuta el script `distributed_train.sh` con las rutas del conjunto de datos y los parámetros de entrenamiento especificados.
Integrar: Adapta el código `convmixer.py` para bucles de entrenamiento personalizados o pipelines de inferencia.
Casos de uso de ConvMixer
- Clasificación de Imágenes
- Evaluación de Modelos
- Entrenamiento de Modelos Personalizados
- Investigación y Desarrollo
- Aprendizaje por Transferencia
- Benchmarking








