Saltar al contenido principal

PyTorch a ONNX

Este capítulo describirá cómo convertir y exportar modelos PyTorch a modelos ONNX.

Preparación​

Configuración del Entorno​

Como en el paso de Entrenamiento, recomendamos que lo hagas en un entorno virtual durante la fase de exportación del modelo. En el entorno virtual sscma, asegúrate de que el paso Instalación - Prerrequisitos - Instalar Dependencias Adicionales haya sido completado.

tip

Si has configurado un entorno virtual pero no lo has activado, puedes activarlo con el siguiente comando.

conda activate sscma

Modelos y Pesos​

También necesitas preparar el modelo PyTorch y sus pesos antes de exportar el modelo. Para el modelo, puedes encontrarlo en la sección Config, ya lo hemos preconfigurado. Para los pesos, puedes referirte a los siguientes pasos para obtener los pesos del modelo.

Exportar Modelo​

Para la conversión y exportación del modelo, se listan los comandos relevantes con algunos parámetros comunes.

python3 tools/export.py \
"<CONFIG_FILE_PATH>" \
"<CHECKPOINT_FILE_PATH>" \
--target onnx

Ejemplos de Exportación ONNX​

Aquí hay algunos ejemplos de conversión de modelos para referencia.

python3 tools/export.py \
configs/fomo/fomo_mobnetv2_0.35_x8_abl_coco.py \
"$(cat work_dirs/fomo_mobnetv2_0.35_x8_abl_coco/last_checkpoint)" \
--target onnx \
--cfg-options \
data_root='datasets/mask'

Validación del Modelo​

Dado que en el proceso de exportación del modelo, SSCMA realizará algunas optimizaciones para el modelo usando algunas herramientas, como poda del modelo, destilación, etc. Aunque hemos probado y evaluado los pesos del modelo durante el proceso de entrenamiento, recomendamos que valides el modelo exportado nuevamente.

python3 tools/inference.py \
"<CONFIG_FILE_PATH>" \
"<CHECKPOINT_FILE_PATH>" \
--show \
--cfg-options "<CFG_OPTIONS>"
tip

Para más parámetros soportados, por favor consulta el código fuente tools/inference.py o ejecuta python3 tools/inference.py --help.

Ejemplo de Validación del Modelo​

python3 tools/inference.py \
configs/fomo/fomo_mobnetv2_0.35_x8_abl_coco.py \
"$(cat work_dirs/fomo_mobnetv2_0.35_x8_abl_coco/last_checkpoint | sed -e 's/.pth/.onnx/g')" \
--show \
--cfg-options \
data_root='datasets/mask'
Loading Comments...