Этот репозиторий является официальной реализацией статьи, упомянутой выше. Более подробную информацию можно найти на странице проекта или в документе.
Здесь мы описываем настройку, необходимую для обучения и оценки модели.
Мы проверяем воспроизводимость в этой среде.
Мы рекомендуем использовать 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
Важно : мы обнаружили некоторые критические ошибки, которые невозможно быстро исправить при использовании нескольких графических процессоров. Установите CUDA_VISIBLE_DEVICES=<GPU_ID>
, чтобы модель использовала один графический процессор.
Примечание: наш основной фреймворк основан на гидре. Удобно обрабатывать десятки аргументов иерархически, но могут потребоваться некоторые дополнительные усилия, если вы новичок в гидре.
Пожалуйста, запустите блокнот Jupyter в Notes/demo.ipynb. Вы можете получить и визуализировать результаты шести задач создания макета в двух наборах данных (Rico и PubLayNet).
Вы также можете обучить свою собственную модель с нуля, например, с помощью
bash bin/train.sh rico25 layoutdm
, где первый и второй аргумент указывают набор данных (варианты выбора) и тип эксперимента (варианты выбора) соответственно. Обратите внимание, что для обучения/тестирования стиль аргументов — key=value
, поскольку мы используем гидру, в отличие от популярного --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, частичный, уточнение, отношение)
Например, если вы хотите протестировать предоставленную модель 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>
: используйте выборку top-p с 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},
}