[ICCV 23] DLT: создание условной схемы с помощью совместного дискретно-непрерывного диффузионного преобразователя схемы
Этот репозиторий является официальной реализацией документа DLT. Пожалуйста, обратитесь к документу для получения более подробной информации и к странице проекта для общего обзора.
Безусловный | Категория | Категория + Размер |
---|---|---|
Все соответствующие требования перечислены в файле Environment.yml. Мы рекомендуем использовать conda для создания соответствующей среды и установки зависимостей:
conda env create -f environment.yml
conda activate dlt
Загрузите общедоступные наборы данных со следующих веб-страниц. Поместите его в свою папку и соответствующим образом обновите ./dlt/configs/remote/dataset_config.yaml
.
Вы можете обучить модель, используя любой скрипт конфигурации в папке configs. Например, если вы хотите обучить предоставленную модель DLT на наборе данных общедоступной сети, команда будет следующей:
cd dlt
python main.py --config configs/remote/dlt_publaynet_config.yaml --workdir < WORKDIR >
Обратите внимание, что код не зависит от ускорителя. если вы не хотите записывать результаты в wandb, просто установите --workdir test
в args.
Чтобы создать образцы для оценки на тестовом наборе, выполните следующие действия:
# put weights in config.logs folder
DATASET = " publaynet " # or "rico" or "magazine"
python generate_samples.py --config configs/remote/dlt_{ $DATASET }_config.yaml \
--workdir < WORKDIR > --epoch < EPOCH > --cond_type < COND_TYPE > \
--save True
# get all the metrics
# update path to pickle file in dlt/evaluation/metric_comp.py
./download_fid_model.sh
python metric_comp.py
где <COND_TYPE>
может быть: (all, Whole_box, loc) - (безусловный, категория, категория+размер) соответственно, <EPOCH>
— номер эпохи модели, которую вы хотите оценить, а <WORKDIR>
— путь к папка, в которой сохраняются веса модели (например, rico_final). Сгенерированные образцы будут сохранены в папке logs/<WORKDIR>/samples
если save
значение True.
Результатом работы является файл Pickle со сгенерированными образцами. Вы можете использовать его для расчета показателей.
Папка с весами после тренировки имеет такую структуру:
logs
├── magazine_final
│ ├── checkpoints
│ └── samples
├── publaynet_final
│ ├── checkpoints
│ └── samples
└── rico_final
├── checkpoints
└── samples
Если этот код окажется полезным для вашего исследования, процитируйте нашу статью:
@misc{levi2023dlt,
title={DLT: Conditioned layout generation with Joint Discrete-Continuous Diffusion Layout Transformer},
author={Elad Levi and Eli Brosh and Mykola Mykhailych and Meir Perez},
year={2023},
eprint={2303.03755},
archivePrefix={arXiv},
primaryClass={cs.CV}
}