ที่เก็บอย่างเป็นทางการของกระดาษ ICPR24 "Genformer - ภาพที่สร้างขึ้นคือสิ่งที่คุณต้องการเพื่อปรับปรุงความทนทานของหม้อแปลงในชุดข้อมูลขนาดเล็ก"
Sven Oehri, Nikolas Ebert, Ahmed Abdullah, Didier Stricker & Oliver Wasenmüller
Cemos - ศูนย์วิจัยและโอนย้ายมหาวิทยาลัยวิทยาศาสตร์ประยุกต์ Mannheim

รหัสถูกทดสอบด้วย Cuda 11.8, Python 3.10 Pytorch 2.2.0 รหัสไม่ได้รับการปรับให้เหมาะสมสำหรับการตั้งค่า multi-GPU และรุ่นต่าง ๆ รองรับ 1 GPU เท่านั้น
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 build -t genformer .
ปรับ GPU ที่มองเห็นได้ขนาดหน่วยความจำที่ใช้ร่วมกันและไดเรกทอรีท้องถิ่นที่ติดตั้งตามการตั้งค่าของคุณจากนั้นเรียกใช้คอนเทนเนอร์:
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 -file ภายใต้ SYNTHETIC_DATA.DIR_NAME (เช่น configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml บรรทัด 24 ถึง 26)
หมายเหตุ: ข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสร้างชุดข้อมูลที่สร้างขึ้นและโมเดลที่จำเป็นสามารถพบได้ในการสร้างข้อมูลส่วน
ในการประเมินแบบจำลองที่ผ่านการฝึกอบรมมาก่อน Tiny ImageNet , Tiny ImageNet-C , Tiny ImageNet-A และ Tiny ImageNet-R
python3 tools/eval.py --cfg path/to/config.yaml --ckpt path/to/weights.pth -d dataset
ตัวอย่างเช่นในการประเมิน deit-tiny ด้วย On 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 บน Tiny ImageNet w/o GenFormer :
python3 tools/train.py --cfg configs/baseline/vanilla/deit_vanilla_tinyim.yaml
เช่น Deit-Tiny บน Tiny ImageNet w/ GenFormer :
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml
เช่น Deit-Tiny บน Tiny ImageNet w/ GenFormer การแก้ไข wandB -logging ผ่านบรรทัดคำสั่ง:
python3 tools/train.py --cfg configs/genformer/vanilla_genformer/deit_vanilla_tinyim_genformer.yaml LOG.WANDB True
ในการปรับพารามิเตอร์การฝึกอบรมทั้งหมดต้องปรับ. .yaml -file ที่สอดคล้องกันใน configs/ -folder จะต้องปรับ ภาพรวมของตัวเลือกทั้งหมดสามารถพบได้ใน genformer/engine/cfg.py
เราใช้รหัสจากการอธิบายพื้นที่การออกแบบของรุ่น Generative ที่ใช้การแพร่กระจาย (EDM) เพื่อสร้างชุดข้อมูลที่สร้างขึ้น ที่นี่เราให้บริการแบบจำลองที่ผ่านการฝึกอบรมของเราสำหรับการสร้างข้อมูลเท่านั้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้รูปแบบการแพร่กระจายโปรดดูเอกสารประกอบของผู้เขียน
ที่เก็บนี้ถูกสร้างขึ้นโดยใช้ไลบรารี TIMM และที่เก็บข้อมูลเล็ก ๆ
งานวิจัยนี้ได้รับการสนับสนุนส่วนหนึ่งจากมูลนิธิอัลเบิร์ตและแอนนิลีย์โคนันซ์มูลนิธิวิจัยเยอรมันภายใต้ Grant Inst874/9-1 และกระทรวงศึกษาธิการและการวิจัยของรัฐบาลกลางในโครงการ M2AIND-DELEARNING (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 } ,
}