이 저장소는 위 제목의 논문을 공식적으로 구현한 것입니다. 자세한 내용은 프로젝트 페이지나 논문을 참고해주세요.
여기서는 모델 교육 및 평가에 필요한 설정을 설명합니다.
이 환경에서 재현성을 확인합니다.
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를 사용할 때 신속하게 수정할 수 없는 심각한 오류가 몇 가지 발견되었습니다. 모델이 단일 GPU를 사용하도록 하려면 CUDA_VISIBLE_DEVICES=<GPU_ID>
설정하세요.
참고: 우리의 주요 프레임워크는 hydra를 기반으로 합니다. 수십 개의 인수를 계층적으로 처리하는 것이 편리하지만 hydra를 처음 사용하는 경우 추가 노력이 필요할 수 있습니다.
Notebooks/demo.ipynb에서 jupyter 노트북을 실행하세요. 두 개의 데이터 세트(Rico 및 PubLayNet)에서 6개의 레이아웃 생성 작업 결과를 가져오고 렌더링할 수 있습니다.
예를 들어 다음과 같이 처음부터 자신만의 모델을 학습할 수도 있습니다.
bash bin/train.sh rico25 layoutdm
, 여기서 첫 번째 인수와 두 번째 인수는 각각 데이터 세트(선택 사항)와 실험 유형(선택 사항)을 지정합니다. 훈련/테스트의 경우 인기 있는 --key value
(예: argparse)과 달리 hydra를 사용하므로 인수 스타일은 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},
}