Skip to main content

PyTorch a TFLite

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

Preparación

Configuración del Entorno

Como en el paso de Entrenamiento, te recomendamos hacerlo 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.

tip

Exportar modelo TFLite requiere un conjunto de entrenamiento como conjunto de datos representativo, si no se encuentra, el programa lo descargará automáticamente. Sin embargo, para algunos conjuntos de datos grandes, esto puede tomar mucho tiempo, así que ten paciencia.

Exportar Modelo

Para la transformación del modelo (convertir y exportar), se listan los comandos relevantes con algunos parámetros comunes.

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

Ejemplos de Exportación TFLite

Aquí hay algunos ejemplos de conversión de modelos (precisión int8) 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 tflite \
--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, te recomendamos validar 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

Aquí hay algunos ejemplos para validar el modelo convertido (precisión int8), solo para referencia.

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/_int8.tflite/g')" \
--show \
--cfg-options \
data_root='datasets/mask'
Loading Comments...