Repositori ini merupakan implementasi resmi dari makalah berjudul di atas. Silakan merujuk ke halaman atau makalah proyek untuk lebih jelasnya.
Di sini kami menjelaskan pengaturan yang diperlukan untuk pelatihan dan evaluasi model.
Kami memeriksa reproduktifitas dalam lingkungan ini.
Kami merekomendasikan penggunaan Puisi (semua pengaturan dan dependensi di pyproject.toml). Pytorch-geometry menyediakan roda pra-pembuatan independen untuk kombinasi versi PyTorch dan CUDA (lihat PyG:Instalasi untuk detailnya). Jika lingkungan Anda tidak cocok dengan lingkungan di atas, harap perbarui dependensinya.
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
Data didekompresi ke struktur berikut:
download
- clustering_weights
- datasets
- fid_weights
- pretrained_weights
Penting : kami menemukan beberapa kesalahan kritis yang tidak dapat diperbaiki dengan cepat dalam menggunakan banyak GPU. Harap setel CUDA_VISIBLE_DEVICES=<GPU_ID>
untuk memaksa model menggunakan satu GPU.
Catatan: kerangka utama kami didasarkan pada hydra. Akan lebih mudah untuk menangani puluhan argumen secara hierarkis namun mungkin memerlukan beberapa upaya tambahan jika seseorang masih baru mengenal hydra.
Silakan jalankan notebook jupyter di notebooks/demo.ipynb. Anda bisa mendapatkan dan merender hasil dari enam tugas pembuatan tata letak pada dua himpunan data (Rico dan PubLayNet).
Anda juga dapat melatih model Anda sendiri dari awal, misalnya dengan
bash bin/train.sh rico25 layoutdm
, dengan argumen pertama dan kedua masing-masing menentukan kumpulan data (pilihan) dan jenis eksperimen (pilihan). Perhatikan bahwa untuk pelatihan/pengujian, gaya argumennya adalah key=value
karena kita menggunakan hydra, tidak seperti --key value
yang populer (misalnya, argparse).
poetry run python3 -m src.trainer.trainer.test
cond= < COND >
job_dir= < JOB_DIR >
result_dir= < RESULT_DIR >
< ADDITIONAL_ARGS >
<COND>
dapat berupa: (tanpa syarat, c, cwh, parsial, penyempurnaan, relasi)
Misalnya, jika Anda ingin menguji model LayoutDM yang disediakan pada C->S+P
, perintahnya adalah sebagai berikut:
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
Silakan merujuk ke TestConfig untuk opsi lebih lanjut yang tersedia. Berikut adalah beberapa opsi populer untuk <ADDITIONAL_ARGS>
is_validation=true
: digunakan untuk mengevaluasi performa pembangkitan pada set validasi, bukan pada set pengujian. Ini harus digunakan saat menyetel hyper-parameter.sampling=top_p top_p=<TOP_P>
: gunakan pengambilan sampel top-p dengan p=<TOP_P> alih-alih pengambilan sampel default.poetry run python3 eval.py < RESULT_DIR >
Jika Anda merasa kode ini berguna untuk penelitian Anda, silakan kutip makalah kami:
@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},
}