layout dm
Initial release
該存儲庫是上述論文的官方實作。請參閱專案頁面或論文以了解更多詳細資訊。
在這裡,我們描述模型訓練和評估所需的設定。
我們檢查該環境下的再現性。
我們建議使用 Poetry(pyproject.toml 中的所有設定和依賴項)。 Pytorch-geometry 為 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
重要提示:我們發現一些在使用多個 GPU 時無法快速修復的嚴重錯誤。請設定CUDA_VISIBLE_DEVICES=<GPU_ID>
以強制模型使用單一 GPU。
注意:我們的主要框架是基於 Hydra 的。分層處理數十個參數很方便,但如果您是九頭蛇新手,可能需要一些額外的努力。
請在notebooks/demo.ipynb中執行jupyter筆記本。您可以在兩個資料集(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、部分、細化、關係)
例如,如果要在C->S+P
上測試提供的 LayoutDM 模型,指令如下:
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=<TOP_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},
}