Официальный репозиторий бумаги ICPR24 "Genformer - сгенерированные изображения - это все, что вам нужно для повышения надежности трансформаторов на небольших наборах данных"
Свен Оери, Николас Эберт, Ахмед Абдулла, Дидье Стрикер и Оливер Васенмюллер
Cemos - Центр исследований и передачи, Университет прикладных наук Маннхейм

Код был протестирован с CUDA 11.8, Python 3.10 Pytorch 2.2.0. Код не был оптимизирован для настройки с несколькими GPU, а различные модели поддерживают только 1 графический процессор.
git clone https://github.com/CeMOS-IS/GenFormer
cd GenFormer
Чтобы настроить среду Anaconda, запустите следующие команды из:
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
Чтобы построить изображение Docker, запустите следующее
docker build -t genformer .
Отрегулируйте видимые графические процессоры, общий размер памяти и монтированный локальный каталог в соответствии с вашей установкой, затем запустите контейнер.:
docker run -it --name genformer --rm
--shm-size 100G --gpus '"device=0"'
-v /path/to/repo/:/genformer
genformer bash
| Метод | Стратегия поезда | Генеральные изображения | T-in err. | T-INV2 ERR. | T-in-R-ERR. | T-In-C CE | T-in-a err. | модель |
|---|---|---|---|---|---|---|---|---|
| Deit-ti | Базовый уровень | ЛОЖЬ | 50.3 | 68.0 | 92,5 | 80.6 | 80.6 | модель |
| Deit-ti | Базовый уровень | Истинный | 44.1 | 65,3 | 89,6 | 77.7 | 78.0 | модель |
| Deit-ti | Cutmix + Mixup | ЛОЖЬ | 44,4 | 65,0 | 89,7 | 74,5 | 78.3 | модель |
| Deit-ti | Cutmix + Mixup | Истинный | 38.5 | 57.8 | 86.4 | 71.8 | 74.4 | модель |
| Deit-ti | Augmix | ЛОЖЬ | 40.4 | 61.3 | 88.4 | 72,8 | 76.2 | модель |
| Deit-ti | Augmix | Истинный | 36.4 | 57.8 | 85,6 | 71.0 | 73.1 | модель |
| Pvt-T | Базовый уровень | ЛОЖЬ | 46.5 | 67.2 | 91.5 | 78.9 | 78.9 | модель |
| Pvt-T | Базовый уровень | Истинный | 42,8 | 64,8 | 87.4 | 76.8 | 77.7 | модель |
| Pvt-T | Cutmix + Mixup | ЛОЖЬ | 41,9 | 64,6 | 87.8 | 74.1 | 76.8 | модель |
| Pvt-T | Cutmix + Mixup | Истинный | 37.5 | 60.1 | 84,6 | 70.1 | 74.1 | модель |
| Pvt-T | Augmix | ЛОЖЬ | 39,9 | 62.1 | 87.9 | 73,0 | 75,9 | модель |
| Pvt-T | Augmix | Истинный | 36.4 | 58.3 | 86.2 | 71.0 | 73,6 | модель |
| Метод | Генеральные изображения | C-10 Err. | C-10.1 Err. | C-10-C CE | C-100-C ERR | C-100-C CE | модель |
|---|---|---|---|---|---|---|---|
| Resnet18 | ЛОЖЬ | 4.6 | 11.2 | 15.1 | 20,5 | 37.9 | Model-C10 / Model-C100 |
| Resnet18 | Истинный | 4.1 | 10.1 | 14.6 | 20.3 | 38.0 | Model-C10 / Model-C100 |
| Deit-ti | ЛОЖЬ | 10.5 | 22.2 | 23.0 | 35,3 | 51.8 | Model-C10 / Model-C100 |
| Deit-ti | Истинный | 4.0 | 9.8 | 12.0 | 24.7 | 39,4 | Model-C10 / Model-C100 |
| Pvt-T | ЛОЖЬ | 6.9 | 14.8 | 17.8 | 29,7 | 48.0 | Model-C10 / Model-C100 |
| Pvt-T | Истинный | 3.6 | 9.7 | 11.7 | 21.1 | 35,9 | Model-C10 / Model-C100 |
| Pvtv2-B0 | ЛОЖЬ | 5.0 | 11.1 | 14.2 | 23.1 | 41.2 | Model-C10 / Model-C100 |
| Pvtv2-B0 | Истинный | 3.5 | 8.8 | 12.6 | 19.5 | 34.2 | Model-C10 / Model-C100 |
| Осужден | ЛОЖЬ | 5.6 | 13.2 | 14.0 | 25,5 | 40.6 | Model-C10 / Model-C100 |
| Осужден | Истинный | 3.2 | 7,8 | 9.6 | 18.2 | 31.5 | Model-C10 / Model-C100 |
| Метод | Генеральные изображения | B-Mnist Err. | B-Mnist-C CE | P-Mnist Err. | P-Mnist-C CE | OS-MNIST ERR. | OS-MNIST-C CE | модель |
|---|---|---|---|---|---|---|---|---|
| Deit-ti | ЛОЖЬ | 23.1 | 24.5 | 8.0 | 12.8 | 26.9 | 45,9 | Model-B / Model-P / Model-OS |
| Deit-ti | Истинный | 9.0 | 14.7 | 5.1 | 10.5 | 21.3 | 32,5 | Model-B / Model-P / Model-OS |
| Pvt-T | ЛОЖЬ | 22.4 | 23.9 | 13.1 | 17.8 | 20.3 | 34.4 | Model-B / Model-P / Model-OS |
| Pvt-T | Истинный | 9.0 | 13.9 | 5.4 | 10.0 | 17.1 | 24.7 | Model-B / Model-P / Model-OS |
train и val будут загружены и подготовлены автоматически без необходимой дальнейшей настройки.data/ папке. Структура папок для всех наборов данных должна быть следующей: $ tree data
generated dataset
├── class1
│ ├── img1.jpeg
│ ├── img2.jpeg
│ └── ...
├── class2
│ ├── img3.jpeg
│ └── ...
└── ...
ПРИМЕЧАНИЕ. Папка синтетических изображений должна быть указана в config -файле в рамках SYNTHETIC_DATA.DIR_NAME (например, configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml Line 24-26)
ПРИМЕЧАНИЕ. Дополнительную информацию о том, как создать сгенерированные наборы данных, и необходимые модели можно найти в генерации данных раздела.
Чтобы оценить предварительно обученную модель на Tiny ImageNet , Tiny ImageNet-C , Tiny ImageNet-A и Tiny ImageNet-R Run:
python3 tools/eval.py --cfg path/to/config.yaml --ckpt path/to/weights.pth -d dataset
Например, чтобы оценить деит-нижнее с помощью Tiny ImageNet-R :
python3 tools/eval.py --cfg configs/baseline/vanilla/deit_vanilla_tinyim.yaml --ckpt checkpoints/deit_tinyimagenet_vanilla.pth -d tinyimagenet-r
В дополнение к Tiny-ImagNet , можно оценить множество других наборов данных, таких как CIFAR , MedMNIST и EuroSAT . Список всех поддерживаемых наборов данных можно найти со следующей командой:
python3 tools/eval.py -h
Чтобы обучить модель на наборе данных с нуля, запустите:
python3 tools/train.py --cfg path/to/config.yaml
Параметры:
--resume : загружает последнюю контрольную точку моделиopts : манипулировать параметрами конфигурации Например, Deit-Tiny On Tiny ImageNet без GenFormer :
python3 tools/train.py --cfg configs/baseline/vanilla/deit_vanilla_tinyim.yaml
Например, Deit-Tiny On Tiny ImageNet с GenFormer :
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml
Например, Deit-Tiny On Tiny ImageNet с GenFormer wandB -logging, модифицированный с помощью командной строки:
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml LOG.WANDB True
configs/ настроить все учебные параметры, необходимо скорректировать .yaml . Обзор всех вариантов можно найти в genformer/engine/cfg.py .
Мы использовали код из выяснения пространства дизайна генеративных моделей на основе диффузии (EDM) для создания сгенерированных наборов данных. Здесь мы предоставляем только наши обученные модели, используемые для генерации данных. Для получения дополнительной информации об использовании диффузионной модели, пожалуйста, обратитесь к документации авторов.
Этот репозиторий построен с использованием библиотеки Timm и репозитория крошечных трансформаторов.
Это исследование было частично профинансировано Фондом Альберта и Аннелиес Конанц, немецким исследовательским фондом в рамках гранта Inst874/9-1 и Федеральным министерством образования и исследований в Германии в проекте M2aind-Deeplearning (13FH8I08IA).
Если вы использовали Genformer в своем исследовании, пожалуйста, укажите нашу работу. ?
@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 } ,
}