このリポジトリは、上記の論文の正式な実装です。詳細についてはプロジェクトページまたは論文を参照してください。
ここでは、モデルのトレーニングと評価に必要な設定について説明します。
この環境で再現性を確認しています。
Poetry (すべての設定と依存関係は 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
重要: 複数の GPU を使用すると、すぐには修正できない重大なエラーがいくつか見つかりました。モデルで単一の GPU を強制的に使用するには、 CUDA_VISIBLE_DEVICES=<GPU_ID>
を設定してください。
注: 私たちの主要なフレームワークは Hydra に基づいています。数十の引数を階層的に処理すると便利ですが、Hydra を初めて使用する場合は追加の作業が必要になる場合があります。
Notebooks/demo.ipynb で jupyter ノートブックを実行してください。 2 つのデータセット (Rico と PubLayNet) に対する 6 つのレイアウト生成タスクの結果を取得してレンダリングできます。
たとえば次のようにして、独自のモデルを最初からトレーニングすることもできます。
bash bin/train.sh rico25 layoutdm
, ここで、最初と 2 番目の引数は、それぞれデータセット (選択肢) と実験の種類 (選択肢) を指定します。トレーニング/テストの場合、一般的な--key value
(例: argparse) とは異なり、ヒドラを使用するため、引数のスタイルはkey=value
であることに注意してください。
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=<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},
}