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},
}