هذا المستودع هو تطبيق رسمي للورقة التي تحمل عنوان أعلاه. يرجى الرجوع إلى صفحة المشروع أو الورقة لمزيد من التفاصيل.
نحن هنا نصف الإعداد المطلوب للتدريب والتقييم النموذجي.
نحن نتحقق من إمكانية تكرار نتائج في ظل هذه البيئة.
نوصي باستخدام الشعر (جميع الإعدادات والتبعيات في pyproject.toml). توفر هندسة Pytorch عجلة بناء مسبقة مستقلة لمجموعة من إصدار PyTorch وCUDA (راجع PyG: التثبيت لمزيد من التفاصيل). إذا كانت بيئتك لا تتطابق مع البيئة المذكورة أعلاه، فيرجى تحديث التبعيات.
curl -sSL https://install.python-poetry.org | python3 -
poetry install
wget https://github.com/CyberAgentAILab/layout-dm/releases/download/v1.0.0/layoutdm_starter.zip
unzip layoutdm_starter.zip
يتم فك ضغط البيانات إلى البنية التالية:
download
- clustering_weights
- datasets
- fid_weights
- pretrained_weights
هام : نجد بعض الأخطاء الجسيمة التي لا يمكن إصلاحها بسرعة عند استخدام وحدات معالجة الرسومات المتعددة. الرجاء ضبط CUDA_VISIBLE_DEVICES=<GPU_ID>
لإجبار النموذج على استخدام وحدة معالجة رسومات واحدة.
ملاحظة: يعتمد إطار عملنا الرئيسي على الهيدرا. من السهل التعامل مع العشرات من الوسيطات بشكل هرمي ولكن قد يتطلب بعض الجهود الإضافية إذا كان أحدهم جديدًا على الهيدرا.
يرجى تشغيل دفتر ملاحظات jupyter في Notebooks/demo.ipynb. يمكنك الحصول على نتائج ست مهام إنشاء تخطيط وعرضها على مجموعتي بيانات (Rico وPubLayNet).
يمكنك أيضًا تدريب النموذج الخاص بك من البداية، على سبيل المثال من خلال
bash bin/train.sh rico25 layoutdm
، حيث تحدد الوسيطة الأولى والثانية مجموعة البيانات (الاختيارات) ونوع التجربة (الاختيارات)، على التوالي. لاحظ أنه بالنسبة للتدريب/الاختبار، يكون نمط الوسائط هو key=value
لأننا نستخدم hydra، على عكس --key value
الشائعة (على سبيل المثال، argparse).
poetry run python3 -m src.trainer.trainer.test
cond= < COND >
job_dir= < JOB_DIR >
result_dir= < RESULT_DIR >
< ADDITIONAL_ARGS >
<COND>
يمكن أن يكون: (غير مشروط، c، cwh، جزئي، تحسين، علاقة)
على سبيل المثال، إذا كنت تريد اختبار نموذج LayoutDM المقدم على C->S+P
، يكون الأمر كما يلي:
poetry run python3 -m src.trainer.trainer.test cond=c dataset_dir=./download/datasets job_dir=./download/pretrained_weights/layoutdm_rico result_dir=tmp/dummy_results
يرجى الرجوع إلى TestConfig لمزيد من الخيارات المتاحة. فيما يلي بعض الخيارات الشائعة لـ <ADDITIONAL_ARGS>
is_validation=true
: يُستخدم لتقييم أداء التوليد في مجموعة التحقق من الصحة بدلاً من مجموعة الاختبار. يجب استخدام هذا عند ضبط المعلمات الفائقة.sampling=top_p top_p=<TOP_P>
: استخدم أخذ العينات من أعلى p مع p=<TOP_P> بدلاً من أخذ العينات الافتراضية.poetry run python3 eval.py < RESULT_DIR >
إذا وجدت هذا الكود مفيدًا لبحثك، فيرجى الاستشهاد بمقالتنا:
@inproceedings{inoue2023layout,
title={{LayoutDM: Discrete Diffusion Model for Controllable Layout Generation}},
author={Naoto Inoue and Kotaro Kikuchi and Edgar Simo-Serra and Mayu Otani and Kota Yamaguchi},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2023},
pages={10167-10176},
}