Este repositorio es una implementación oficial del documento titulado anteriormente. Consulte la página del proyecto o el documento para obtener más detalles.
Aquí describimos la configuración requerida para la capacitación y evaluación del modelo.
Comprobamos la reproducibilidad en este entorno.
Recomendamos usar Poetry (todas las configuraciones y dependencias en pyproject.toml). Pytorch-geometry proporciona una rueda de compilación previa independiente para una combinación de la versión PyTorch y CUDA (consulte PyG:Instalación para obtener más detalles). Si su entorno no coincide con el anterior, actualice las dependencias.
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
Los datos se descomprimen en la siguiente estructura:
download
- clustering_weights
- datasets
- fid_weights
- pretrained_weights
Importante : encontramos algunos errores críticos que no se pueden solucionar rápidamente al utilizar varias GPU. Configure CUDA_VISIBLE_DEVICES=<GPU_ID>
para forzar que el modelo use una sola GPU.
Nota: nuestro marco principal se basa en hidra. Es conveniente manejar docenas de argumentos jerárquicamente, pero puede requerir algunos esfuerzos adicionales si uno es nuevo en Hydra.
Ejecute un cuaderno jupyter en notebooks/demo.ipynb. Puede obtener y representar los resultados de seis tareas de generación de diseño en dos conjuntos de datos (Rico y PubLayNet).
También puedes entrenar tu propio modelo desde cero, por ejemplo
bash bin/train.sh rico25 layoutdm
, donde el primer y segundo argumento especifican el conjunto de datos (opciones) y el tipo de experimento (opciones), respectivamente. Tenga en cuenta que para entrenamiento/pruebas, el estilo de los argumentos es key=value
porque usamos hidra, a diferencia del popular --key value
(por ejemplo, argparse).
poetry run python3 -m src.trainer.trainer.test
cond= < COND >
job_dir= < JOB_DIR >
result_dir= < RESULT_DIR >
< ADDITIONAL_ARGS >
<COND>
puede ser: (incondicional, c, cwh, parcial, refinamiento, relación)
Por ejemplo, si desea probar el modelo LayoutDM proporcionado en C->S+P
, el comando es el siguiente:
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
Consulte TestConfig para conocer más opciones disponibles. A continuación se muestran algunas opciones populares para <ADDITIONAL_ARGS>
is_validation=true
: se utiliza para evaluar el rendimiento de generación en el conjunto de validación en lugar del conjunto de prueba. Esto debe usarse al ajustar los hiperparámetros.sampling=top_p top_p=<TOP_P>
: utiliza el muestreo top-p con p=<TOP_P> en lugar del muestreo predeterminado.poetry run python3 eval.py < RESULT_DIR >
Si encuentra este código útil para su investigación, cite nuestro artículo:
@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},
}