Description
Ce dépôt GitHub, locuslab/convmixer, héberge l'implémentation de ConvMixer, une architecture de réseau neuronal détaillée dans l'article ICLR 2022 intitulé "Patches Are All You Need? 🤷" par Asher Trockman et Zico Kolter. Le code principal du modèle ConvMixer se trouve dans `convmixer.py`. Le projet s'appuie sur le framework `pytorch-image-models` (timm) pour l'entraînement et inclut des modifications à ce framework pour prendre en charge ConvMixers.
Les modifications clés au sein du framework `pytorch-image-models` incluent l'ajout de `timm/models/convmixer.py`, des mises à jour de `timm/models/__init__.py`, et l'intégration d'un planificateur de taux d'apprentissage "OneCycle" avec les fichiers de planificateur correspondants. Bien que le planificateur OneCycle soit noté, les auteurs suggèrent que des planificateurs cosinus standard pourraient également être efficaces pour l'entraînement de ConvMixers.
Le dépôt propose des poids de modèle pré-entraînés pour plusieurs variantes de ConvMixer, notamment ConvMixer-1536/20, ConvMixer-768/32 et ConvMixer-1024/20, avec des détails sur leur taille de noyau, leur taille de patch et leur taille de fichier. Des instructions et des exemples de commandes sont fournis pour évaluer ces modèles sur des jeux de données tels que ImageNet-1k, dans le but d'obtenir une haute précision. Par exemple, ConvMixer-1536/20 devrait atteindre une précision de 81,37 % sur la validation ImageNet-1k.
L'entraînement de ConvMixers est également détaillé, avec une commande d'exemple pour l'entraînement distribué sur une configuration multi-GPU utilisant ImageNet-1k. La commande d'entraînement spécifie des hyperparamètres tels que la taille du lot, le nombre de travailleurs, l'optimiseur, les époques, le planificateur de taux d'apprentissage, les techniques d'augmentation (par exemple, RandAugment, CutMix, MixUp) et la taille d'entrée. Le dépôt inclut également une version simplifiée et « tweetable » de l'architecture ConvMixer en Python.
De plus, un dépôt séparé pour l'entraînement de ConvMixers sur CIFAR-10 est lié, et des conseils sont donnés sur l'ajustement des paramètres d'entraînement tels que `--scale` pour des tailles d'entrée plus petites. Le projet est open-source sous la licence MIT, encourageant la contribution communautaire et le développement futur.
Points forts de Implémentation de ConvMixer
Implémentation de l'architecture de réseau neuronal ConvMixer
Basé sur l'article de recherche "Patches Are All You Need? 🤷"
Inclut du code pour l'entraînement de ConvMixers
Fournit des poids de modèle pré-entraînés pour l'évaluation
Prend en charge l'entraînement sur les jeux de données ImageNet-1k et CIFAR-10
S'appuie sur le framework `pytorch-image-models` (timm)
Inclut une implémentation de planificateur de taux d'apprentissage "OneCycle"
Propose des exemples de commandes pour l'évaluation des modèles
Inclut des exemples de commandes pour l'entraînement distribué
Contient une version simplifiée et « tweetable » du modèle ConvMixer
Poids du modèle disponibles en téléchargement
Open-source sous licence MIT
Premiers pas avec Implémentation de ConvMixer
Accéder au modèle : Clonez le dépôt GitHub sur votre machine locale.
Configurer l'environnement : Installez les bibliothèques Python nécessaires, y compris PyTorch et `pytorch-image-models`.
Charger le modèle : Instanciez un modèle ConvMixer à l'aide des scripts Python fournis.
Évaluer le modèle : Utilisez le script `validate.py` avec les poids téléchargés et un jeu de données de validation.
Entraîner le modèle : Exécutez le script `distributed_train.sh` avec les chemins de jeu de données et les paramètres d'entraînement spécifiés.
Intégrer : Adaptez le code `convmixer.py` pour des boucles d'entraînement personnalisées ou des pipelines d'inférence.
Cas d'utilisation de Implémentation de ConvMixer
- Classification d'images
- Évaluation de modèles
- Entraînement de modèles personnalisés
- Recherche et développement
- Apprentissage par transfert
- Benchmarking








