Repositori resmi dari kertas ICPR24 "Genformer - gambar yang dihasilkan adalah semua yang Anda butuhkan untuk meningkatkan ketahanan transformator pada dataset kecil"
Sven Oehri, Nikolas Ebert, Ahmed Abdullah, Didier Stricker & Oliver Wasenmüller
Cemos - Pusat Penelitian dan Transfer, Universitas Ilmu Terapan Mannheim

Kode ini diuji dengan CUDA 11.8, Python 3.10 Pytorch 2.2.0. Kode ini tidak dioptimalkan untuk pengaturan multi-GPU dan berbagai model hanya mendukung 1 GPU.
git clone https://github.com/CeMOS-IS/GenFormer
cd GenFormer
Untuk mengatur lingkungan Anaconda, jalankan perintah berikut dari:
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
Untuk membangun gambar Docker, jalankan yang berikut ini
docker build -t genformer .
Sesuaikan GPU yang terlihat, ukuran memori bersama dan Direktori Lokal yang Dipasang sesuai dengan pengaturan Anda, lalu jalankan wadah.:
docker run -it --name genformer --rm
--shm-size 100G --gpus '"device=0"'
-v /path/to/repo/:/genformer
genformer bash
| Metode | Strategi kereta api | Gambar Jenderal | T-in err. | T-inv2 err. | T-in-r-err. | T-in-c ce | T-in-a err. | model |
|---|---|---|---|---|---|---|---|---|
| Deit-ti | Baseline | PALSU | 50.3 | 68.0 | 92.5 | 80.6 | 80.6 | model |
| Deit-ti | Baseline | BENAR | 44.1 | 65.3 | 89.6 | 77.7 | 78.0 | model |
| Deit-ti | Cutmix + mixup | PALSU | 44.4 | 65.0 | 89.7 | 74.5 | 78.3 | model |
| Deit-ti | Cutmix + mixup | BENAR | 38.5 | 57.8 | 86.4 | 71.8 | 74.4 | model |
| Deit-ti | Augmix | PALSU | 40.4 | 61.3 | 88.4 | 72.8 | 76.2 | model |
| Deit-ti | Augmix | BENAR | 36.4 | 57.8 | 85.6 | 71.0 | 73.1 | model |
| Pvt-t | Baseline | PALSU | 46.5 | 67.2 | 91.5 | 78.9 | 78.9 | model |
| Pvt-t | Baseline | BENAR | 42.8 | 64.8 | 87.4 | 76.8 | 77.7 | model |
| Pvt-t | Cutmix + mixup | PALSU | 41.9 | 64.6 | 87.8 | 74.1 | 76.8 | model |
| Pvt-t | Cutmix + mixup | BENAR | 37.5 | 60.1 | 84.6 | 70.1 | 74.1 | model |
| Pvt-t | Augmix | PALSU | 39.9 | 62.1 | 87.9 | 73.0 | 75.9 | model |
| Pvt-t | Augmix | BENAR | 36.4 | 58.3 | 86.2 | 71.0 | 73.6 | model |
| Metode | Gambar Jenderal | C-10 err. | C-10.1 err. | C-10-C CE | C-100-C Err | C-100-C CE | model |
|---|---|---|---|---|---|---|---|
| Resnet18 | PALSU | 4.6 | 11.2 | 15.1 | 20.5 | 37.9 | Model-C10 / Model-C100 |
| Resnet18 | BENAR | 4.1 | 10.1 | 14.6 | 20.3 | 38.0 | Model-C10 / Model-C100 |
| Deit-ti | PALSU | 10.5 | 22.2 | 23.0 | 35.3 | 51.8 | Model-C10 / Model-C100 |
| Deit-ti | BENAR | 4.0 | 9.8 | 12.0 | 24.7 | 39.4 | Model-C10 / Model-C100 |
| Pvt-t | PALSU | 6.9 | 14.8 | 17.8 | 29.7 | 48.0 | Model-C10 / Model-C100 |
| Pvt-t | BENAR | 3.6 | 9.7 | 11.7 | 21.1 | 35.9 | Model-C10 / Model-C100 |
| PVTV2-B0 | PALSU | 5.0 | 11.1 | 14.2 | 23.1 | 41.2 | Model-C10 / Model-C100 |
| PVTV2-B0 | BENAR | 3.5 | 8.8 | 12.6 | 19.5 | 34.2 | Model-C10 / Model-C100 |
| Meyakinkan | PALSU | 5.6 | 13.2 | 14.0 | 25.5 | 40.6 | Model-C10 / Model-C100 |
| Meyakinkan | BENAR | 3.2 | 7.8 | 9.6 | 18.2 | 31.5 | Model-C10 / Model-C100 |
| Metode | Gambar Jenderal | B-Mnist err. | B-mnist-c ce | P-Mnist err. | P-mnist-c ce | Os-mnist err. | OS-MNIS-C CE | model |
|---|---|---|---|---|---|---|---|---|
| Deit-ti | PALSU | 23.1 | 24.5 | 8.0 | 12.8 | 26.9 | 45.9 | Model-B / Model-P / Model-OS |
| Deit-ti | BENAR | 9.0 | 14.7 | 5.1 | 10.5 | 21.3 | 32.5 | Model-B / Model-P / Model-OS |
| Pvt-t | PALSU | 22.4 | 23.9 | 13.1 | 17.8 | 20.3 | 34.4 | Model-B / Model-P / Model-OS |
| Pvt-t | BENAR | 9.0 | 13.9 | 5.4 | 10.0 | 17.1 | 24.7 | Model-B / Model-P / Model-OS |
train dan val akan diunduh dan disiapkan secara otomatis tanpa diperlukan kustomisasi lebih lanjut.data/ folder. Struktur folder untuk semua set data harus sebagai berikut: $ tree data
generated dataset
├── class1
│ ├── img1.jpeg
│ ├── img2.jpeg
│ └── ...
├── class2
│ ├── img3.jpeg
│ └── ...
└── ...
Catatan: Folder gambar sintetis harus ditentukan dalam config -file di bawah SYNTHETIC_DATA.DIR_NAME (misalnya configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml line 24 hingga 26)
Catatan: Informasi lebih lanjut tentang cara membuat set data yang dihasilkan dan model yang diperlukan dapat ditemukan di bagian pembuatan data.
Untuk mengevaluasi model pra-terlatih pada Tiny ImageNet , Tiny ImageNet-C , Tiny ImageNet-A dan run Tiny ImageNet-R :
python3 tools/eval.py --cfg path/to/config.yaml --ckpt path/to/weights.pth -d dataset
Misalnya, untuk mengevaluasi deit-kecil dengan pada Tiny ImageNet-R :
python3 tools/eval.py --cfg configs/baseline/vanilla/deit_vanilla_tinyim.yaml --ckpt checkpoints/deit_tinyimagenet_vanilla.pth -d tinyimagenet-r
Selain Tiny-ImagNet , banyak set data lainnya seperti CIFAR , MedMNIST dan EuroSAT dapat dievaluasi. Daftar semua set data yang didukung dapat ditemukan dengan perintah berikut:
python3 tools/eval.py -h
Untuk melatih model pada dataset pilihan dari awal, jalankan:
python3 tools/train.py --cfg path/to/config.yaml
Opsi:
--resume : Muat pos pemeriksaan terakhir dari modelopts : memanipulasi opsi konfigurasi misalnya Deit-Tiny on Tiny ImageNet W/O GenFormer :
python3 tools/train.py --cfg configs/baseline/vanilla/deit_vanilla_tinyim.yaml
misalnya Deit-Tiny on Tiny ImageNet w/ GenFormer :
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml
misalnya Deit-Tiny on Tiny ImageNet w/ GenFormer An wandB -logging dimodifikasi melalui baris perintah:
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml LOG.WANDB True
Untuk menyesuaikan semua parameter pelatihan, .yaml -file yang sesuai di configs/ -folder harus disesuaikan. Tinjauan semua opsi dapat ditemukan di genformer/engine/cfg.py .
Kami menggunakan kode dari menjelaskan ruang desain model generatif berbasis difusi (EDM) untuk membuat set data yang dihasilkan. Di sini, kami hanya menyediakan model terlatih kami yang digunakan untuk pembuatan data. Untuk informasi lebih lanjut tentang penggunaan model difusi, silakan merujuk ke dokumentasi penulis.
Repositori ini dibangun menggunakan perpustakaan TimM dan repositori transformer kecil.
Penelitian ini sebagian didanai oleh Albert dan Anneliese Konanz Foundation, Yayasan Penelitian Jerman di bawah Grant Inst874/9-1 dan Kementerian Pendidikan dan Penelitian Federal Jerman dalam proyek M2Aind-Deeplearning (13FH8I08IA).
Jika Anda telah menggunakan genformer dalam penelitian Anda, silakan kutip pekerjaan kami. ?
@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 } ,
}