Beschreibung
Dieses GitHub-Repository, locuslab/convmixer, beherbergt die Implementierung von ConvMixer, einer neuronalen Netzwerkarchitektur, die im ICLR 2022 Paper mit dem Titel "Patches Are All You Need? 🤷" von Asher Trockman und Zico Kolter detailliert beschrieben wird. Der Hauptcode für das ConvMixer-Modell befindet sich in `convmixer.py`. Das Projekt nutzt das `pytorch-image-models` (timm) Framework für das Training und enthält Modifikationen an diesem Framework zur Unterstützung von ConvMixern.
Weiterlesen
Zu den wichtigsten Modifikationen innerhalb des `pytorch-image-models` Frameworks gehören die Ergänzung von `timm/models/convmixer.py`, Aktualisierungen von `timm/models/__init__.py` und die Integration eines "OneCycle" Lernraten-Schedulers mit entsprechenden Scheduler-Dateien. Obwohl der OneCycle-Scheduler erwähnt wird, schlagen die Autoren vor, dass auch Standard-Kosinus-Scheduler für das Training von ConvMixern effektiv sein könnten.
Das Repository bietet vortrainierte Modellgewichte für mehrere ConvMixer-Varianten, darunter ConvMixer-1536/20, ConvMixer-768/32 und ConvMixer-1024/20, mit Details zu deren Kernelgröße, Patchgröße und Dateigröße. Anleitungen und Beispielbefehle werden für die Evaluierung dieser Modelle auf Datensätzen wie ImageNet-1k bereitgestellt, mit dem Ziel hoher Genauigkeit. Beispielsweise wird erwartet, dass ConvMixer-1536/20 eine Genauigkeit von 81,37 % auf der ImageNet-1k-Validierung erreicht.
Das Training von ConvMixern wird ebenfalls detailliert beschrieben, mit einem Beispielbefehl für verteiltes Training auf einem Multi-GPU-Setup unter Verwendung von ImageNet-1k. Der Trainingsbefehl spezifiziert Hyperparameter wie Batch-Größe, Anzahl der Worker, Optimizer, Epochen, Lernraten-Scheduler, Augmentierungstechniken (z. B. RandAugment, CutMix, MixUp) und Eingabegröße. Das Repository enthält auch eine vereinfachte, "tweetable" Version der ConvMixer-Architektur in Python.
Darüber hinaus ist ein separates Repository für das Training von ConvMixern auf CIFAR-10 verlinkt, und es werden Ratschläge zur Anpassung von Trainingsparametern wie `--scale` für kleinere Eingabegrößen gegeben. Das Projekt ist Open Source unter der MIT-Lizenz und fördert Community-Beiträge und Weiterentwicklung.
- KategorieKI-Modelle & LLMs
- PreismodellOpen Source
- BereitstellungCloud, Selbst gehostet
- PlattformenWeb
ConvMixer's Kernfunktionen
Implementierung der ConvMixer neuronalen Netzwerkarchitektur
Basiert auf dem Forschungsartikel "Patches Are All You Need? 🤷"
Enthält Code für das Training von ConvMixern
Bietet vortrainierte Modellgewichte zur Evaluierung
Unterstützt das Training auf ImageNet-1k und CIFAR-10 Datensätzen
Nutzt das `pytorch-image-models` (timm) Framework
Enthält eine Implementierung des "OneCycle" Lernraten-Schedulers
Bietet Beispielbefehle für die Modell-Evaluierung
Enthält Beispielbefehle für verteiltes Training
Enthält eine vereinfachte, "tweetable" Version des ConvMixer-Modells
Modellgewichte zum Download verfügbar
Open Source unter der MIT-Lizenz
Erste Schritte mit ConvMixer
Modellzugriff: Klonen Sie das GitHub-Repository auf Ihren lokalen Rechner.
Umgebung einrichten: Installieren Sie die notwendigen Python-Bibliotheken, einschließlich PyTorch und `pytorch-image-models`.
Modell laden: Instanziieren Sie ein ConvMixer-Modell mit den bereitgestellten Python-Skripten.
Modell evaluieren: Verwenden Sie das Skript `validate.py` mit heruntergeladenen Gewichten und einem Validierungsdatensatz.
Modell trainieren: Führen Sie das Skript `distributed_train.sh` mit den angegebenen Datensatzpfaden und Trainingsparametern aus.
Integrieren: Passen Sie den `convmixer.py`-Code für benutzerdefinierte Trainingsschleifen oder Inferenz-Pipelines an.
ConvMixer's Anwendungsfälle
- Bildklassifizierung
- Modell-Evaluierung
- Benutzerdefiniertes Modelltraining
- Forschung und Entwicklung
- Transfer Learning
- Benchmarking








