المستودع الرسمي لورقة ICPR24 "GyFormer - الصور التي تم إنشاؤها هي كل ما تحتاجه لتحسين متانة المحولات على مجموعات البيانات الصغيرة"
سفين أوهري ، نيكولاس إيبرت ، أحمد عبد الله ، ديدييه ستريكر وأوليفر واسنمولر
CEMOS - مركز الأبحاث والنقل ، جامعة العلوم التطبيقية مانهايم

تم اختبار الرمز مع CUDA 11.8 ، Python 3.10 Pytorch 2.2.0. لم يتم تحسين الكود لإعدادات GPU متعددة 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 خطأ. | 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 | نموذج |
| الجندي تي | خط الأساس | خطأ شنيع | 46.5 | 67.2 | 91.5 | 78.9 | 78.9 | نموذج |
| الجندي تي | خط الأساس | حقيقي | 42.8 | 64.8 | 87.4 | 76.8 | 77.7 | نموذج |
| الجندي تي | cutmix + mixup | خطأ شنيع | 41.9 | 64.6 | 87.8 | 74.1 | 76.8 | نموذج |
| الجندي تي | cutmix + mixup | حقيقي | 37.5 | 60.1 | 84.6 | 70.1 | 74.1 | نموذج |
| الجندي تي | Augmix | خطأ شنيع | 39.9 | 62.1 | 87.9 | 73.0 | 75.9 | نموذج |
| الجندي تي | Augmix | حقيقي | 36.4 | 58.3 | 86.2 | 71.0 | 73.6 | نموذج |
| طريقة | صور الجنرال | C-10 خطأ. | C-10.1 خطأ. | C-10-C CE | C-100-C ERR | C-100-C CE | نموذج |
|---|---|---|---|---|---|---|---|
| RESNET18 | خطأ شنيع | 4.6 | 11.2 | 15.1 | 20.5 | 37.9 | النموذج-C10 / Model-C100 |
| RESNET18 | حقيقي | 4.1 | 10.1 | 14.6 | 20.3 | 38.0 | النموذج-C10 / Model-C100 |
| deit-ti | خطأ شنيع | 10.5 | 22.2 | 23.0 | 35.3 | 51.8 | النموذج-C10 / Model-C100 |
| deit-ti | حقيقي | 4.0 | 9.8 | 12.0 | 24.7 | 39.4 | النموذج-C10 / Model-C100 |
| الجندي تي | خطأ شنيع | 6.9 | 14.8 | 17.8 | 29.7 | 48.0 | النموذج-C10 / Model-C100 |
| الجندي تي | حقيقي | 3.6 | 9.7 | 11.7 | 21.1 | 35.9 | النموذج-C10 / Model-C100 |
| PVTV2-B0 | خطأ شنيع | 5.0 | 11.1 | 14.2 | 23.1 | 41.2 | النموذج-C10 / Model-C100 |
| PVTV2-B0 | حقيقي | 3.5 | 8.8 | 12.6 | 19.5 | 34.2 | النموذج-C10 / Model-C100 |
| أدخل | خطأ شنيع | 5.6 | 13.2 | 14.0 | 25.5 | 40.6 | النموذج-C10 / Model-C100 |
| أدخل | حقيقي | 3.2 | 7.8 | 9.6 | 18.2 | 31.5 | النموذج-C10 / Model-C100 |
| طريقة | صور الجنرال | B-Mnist يخطئ. | B-MNIST-C CE | P-Mnist يخطئ. | P-MNIST-C CE | OS-MNIST يخطئ. | OS-MNIST-C CE | نموذج |
|---|---|---|---|---|---|---|---|---|
| deit-ti | خطأ شنيع | 23.1 | 24.5 | 8.0 | 12.8 | 26.9 | 45.9 | النموذج-ب / طراز P / Model-OS |
| deit-ti | حقيقي | 9.0 | 14.7 | 5.1 | 10.5 | 21.3 | 32.5 | النموذج-ب / طراز P / Model-OS |
| الجندي تي | خطأ شنيع | 22.4 | 23.9 | 13.1 | 17.8 | 20.3 | 34.4 | النموذج-ب / طراز P / Model-OS |
| الجندي تي | حقيقي | 9.0 | 13.9 | 5.4 | 10.0 | 17.1 | 24.7 | النموذج-ب / طراز 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 مع على 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 .
لقد استخدمنا الكود من توضيح مساحة تصميم النماذج التوليدية القائمة على الانتشار (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 } ,
}