Offizielles Repository des ICPR24 -Papiers "Genformer - Erzeugte Bilder sind alles, was Sie benötigen, um die Robustheit von Transformatoren auf kleinen Datensätzen zu verbessern."
Sven Oehri, Nikolas Ebert, Ahmed Abdullah, Didier Stricker und Oliver Waschernmüller
Cemos - Forschungs- und Transferzentrum, Wissenschaft der Universität, Mannheim

Der Code wurde mit CUDA 11.8, Python 3.10 Pytorch 2.2.0 getestet. Der Code wurde für Multi-GPU-Setups nicht optimiert und verschiedene Modelle unterstützen nur 1 GPU.
git clone https://github.com/CeMOS-IS/GenFormer
cd GenFormer
Um eine Anaconda -Umgebung einzurichten, führen Sie die folgenden Befehle aus:
conda create -n genformer python=3.10
conda activate genformer
pip install torch torchvision torchaudio
pip install -r requirements.txt
pip install robust-minisets
python3 setup.py develop
Führen Sie Folgendes aus, um ein Docker -Bild zu erstellen
docker build -t genformer .
Passen Sie sichtbare GPUs, die gemeinsame Speichergröße und das montierte lokale Verzeichnis gemäß Ihrem Setup ein und führen Sie den Container aus .:
docker run -it --name genformer --rm
--shm-size 100G --gpus '"device=0"'
-v /path/to/repo/:/genformer
genformer bash
| Verfahren | Zug-Strategie | Gen. Bilder | T-in err. | T-inv2 err. | T-in-r-ir. | T-in-c ce | T-in-a err. | Modell |
|---|---|---|---|---|---|---|---|---|
| Deit-ti | Grundlinie | FALSCH | 50.3 | 68.0 | 92.5 | 80.6 | 80.6 | Modell |
| Deit-ti | Grundlinie | WAHR | 44.1 | 65.3 | 89,6 | 77,7 | 78.0 | Modell |
| Deit-ti | Cutmix + Mischung | FALSCH | 44.4 | 65.0 | 89.7 | 74,5 | 78,3 | Modell |
| Deit-ti | Cutmix + Mischung | WAHR | 38,5 | 57,8 | 86,4 | 71,8 | 74.4 | Modell |
| Deit-ti | Augmix | FALSCH | 40.4 | 61.3 | 88,4 | 72,8 | 76,2 | Modell |
| Deit-ti | Augmix | WAHR | 36.4 | 57,8 | 85.6 | 71.0 | 73.1 | Modell |
| Pvt-t | Grundlinie | FALSCH | 46,5 | 67,2 | 91.5 | 78,9 | 78,9 | Modell |
| Pvt-t | Grundlinie | WAHR | 42,8 | 64,8 | 87,4 | 76,8 | 77,7 | Modell |
| Pvt-t | Cutmix + Mischung | FALSCH | 41.9 | 64.6 | 87,8 | 74.1 | 76,8 | Modell |
| Pvt-t | Cutmix + Mischung | WAHR | 37,5 | 60.1 | 84.6 | 70.1 | 74.1 | Modell |
| Pvt-t | Augmix | FALSCH | 39.9 | 62.1 | 87,9 | 73.0 | 75,9 | Modell |
| Pvt-t | Augmix | WAHR | 36.4 | 58,3 | 86,2 | 71.0 | 73.6 | Modell |
| Verfahren | Gen. Bilder | C-10 err. | C-10.1 Err. | C-10-C CE | C-100-C Err | C-100-C CE | Modell |
|---|---|---|---|---|---|---|---|
| Resnet18 | FALSCH | 4.6 | 11.2 | 15.1 | 20.5 | 37,9 | Modell-C10 / Modell-C100 |
| Resnet18 | WAHR | 4.1 | 10.1 | 14.6 | 20.3 | 38.0 | Modell-C10 / Modell-C100 |
| Deit-ti | FALSCH | 10.5 | 22.2 | 23.0 | 35.3 | 51.8 | Modell-C10 / Modell-C100 |
| Deit-ti | WAHR | 4.0 | 9.8 | 12.0 | 24.7 | 39.4 | Modell-C10 / Modell-C100 |
| Pvt-t | FALSCH | 6.9 | 14.8 | 17.8 | 29.7 | 48.0 | Modell-C10 / Modell-C100 |
| Pvt-t | WAHR | 3.6 | 9.7 | 11.7 | 21.1 | 35.9 | Modell-C10 / Modell-C100 |
| PVTV2-B0 | FALSCH | 5.0 | 11.1 | 14.2 | 23.1 | 41.2 | Modell-C10 / Modell-C100 |
| PVTV2-B0 | WAHR | 3.5 | 8.8 | 12.6 | 19.5 | 34.2 | Modell-C10 / Modell-C100 |
| Konvit | FALSCH | 5.6 | 13.2 | 14.0 | 25,5 | 40.6 | Modell-C10 / Modell-C100 |
| Konvit | WAHR | 3.2 | 7.8 | 9.6 | 18.2 | 31.5 | Modell-C10 / Modell-C100 |
| Verfahren | Gen. Bilder | B-Mnist Err. | B-MNIST-C CE | P-Mnist Err. | P-MNIST-C CE | OS-Mnist Err. | OS-MNIST-C CE | Modell |
|---|---|---|---|---|---|---|---|---|
| Deit-ti | FALSCH | 23.1 | 24.5 | 8.0 | 12.8 | 26.9 | 45,9 | Modell-B / Modell-P / Modell-Os |
| Deit-ti | WAHR | 9.0 | 14.7 | 5.1 | 10.5 | 21.3 | 32.5 | Modell-B / Modell-P / Modell-Os |
| Pvt-t | FALSCH | 22.4 | 23.9 | 13.1 | 17.8 | 20.3 | 34.4 | Modell-B / Modell-P / Modell-Os |
| Pvt-t | WAHR | 9.0 | 13.9 | 5.4 | 10.0 | 17.1 | 24.7 | Modell-B / Modell-P / Modell-Os |
train und val -Sets ohne weitere Anpassungen automatisch heruntergeladen und vorbereitet.data/ Ordner gespeichert werden. Die Ordnerstruktur für alle Datensätze sollte wie folgt sein: $ tree data
generated dataset
├── class1
│ ├── img1.jpeg
│ ├── img2.jpeg
│ └── ...
├── class2
│ ├── img3.jpeg
│ └── ...
└── ...
HINWEIS: Der Ordner der synthetischen Bilder muss in der config -file unter SYNTHETIC_DATA.DIR_NAME angegeben werden (z configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml
HINWEIS: Weitere Informationen zum Erstellen der generierten Datensätze und der erforderlichen Modelle finden Sie in der Abschnittsdatenerzeugung.
Bewertung eines vorgebildeten Modells auf Tiny ImageNet , Tiny ImageNet-C , Tiny ImageNet-A und Tiny ImageNet-R Run:
python3 tools/eval.py --cfg path/to/config.yaml --ckpt path/to/weights.pth -d dataset
Zum Beispiel, um die Deit-tiny mit auf Tiny ImageNet-R zu bewerten:
python3 tools/eval.py --cfg configs/baseline/vanilla/deit_vanilla_tinyim.yaml --ckpt checkpoints/deit_tinyimagenet_vanilla.pth -d tinyimagenet-r
Zusätzlich zu Tiny-ImagNet können zahlreiche andere Datensätze wie CIFAR , MedMNIST und EuroSAT bewertet werden. Eine Liste aller unterstützten Datensätze finden Sie mit dem folgenden Befehl:
python3 tools/eval.py -h
Um ein Modell auf einem Datensatz der Wahl von Grund auf neu zu trainieren, rennen Sie:
python3 tools/train.py --cfg path/to/config.yaml
Optionen:
--resume : Lädt den letzten Kontrollpunkt des Modellsopts : Konfigurationsoptionen manipulieren zB Deit-Tiny auf Tiny ImageNet mit GenFormer :
python3 tools/train.py --cfg configs/baseline/vanilla/deit_vanilla_tinyim.yaml
zB Deit-Tiny auf Tiny ImageNet mit GenFormer :
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml
z. B. Deit-Tiny auf Tiny ImageNet mit GenFormer und über die Befehlszeile modifizierte wandB -Logging:
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml LOG.WANDB True
Um alle Trainingsparameter anzupassen, muss die entsprechende .yaml -Datei in den configs/ -Folder eingestellt werden. Ein Überblick über alle Optionen finden Sie in genformer/engine/cfg.py .
Wir haben den Code verwendet, um den Entwurfsraum von diffusionsbasierten Generativmodellen (EDM) aufzuklären, um die generierten Datensätze zu erstellen. Hier stellen wir nur unsere geschulten Modelle an, die für die Datenerzeugung verwendet werden. Weitere Informationen zur Verwendung des Diffusionsmodells finden Sie in der Dokumentation der Autoren.
Dieses Repository wird mit der TIMM-Bibliothek und dem Tiny-Transformers-Repository erstellt.
Diese Forschung wurde teilweise von der Albert und der Anneliese Konanz Foundation, der deutschen Forschungsstiftung im Rahmen von Grant Inst874/9-1 und dem Bundesministerium für Bildung und Forschung Deutschland im Projekt M2AIND-Deeplearning (13FH8I08IA) finanziert.
Wenn Sie Genformer in Ihrer Forschung verwendet haben, zitieren Sie bitte unsere Arbeit. ?
@inproceedings { oehri2024genformer ,
title = { GenFormer – Generated Images are All You Need to Improve Robustness of Transformers on Small Datasets } ,
author = { Oehri, Sven and Ebert, Nikolas and Abdullah, Ahmed and Stricker, Didier and Wasenm{"u}ller, Oliver } ,
booktitle = { International Conference on Pattern Recognition (ICPR) } ,
year = { 2024 } ,
}