Comprender cómo exportar al formato TF SavedModel desde YOLO11
La implementación de modelos de aprendizaje automático puede ser un desafío. Sin embargo, el uso de un formato de modelo eficiente y flexible puede facilitarle el trabajo. TF SavedModel es un marco de aprendizaje automático de código abierto utilizado por TensorFlow para cargar modelos de aprendizaje automático de manera consistente. Es como una maleta para los modelos de TensorFlow, lo que los hace fáciles de transportar y usar en diferentes dispositivos y sistemas.
Aprender a exportar a TF SavedModel desde modelos Ultralytics YOLO11 puede ayudarle a implementar modelos fácilmente en diferentes plataformas y entornos. En esta guía, le mostraremos cómo convertir sus modelos al formato TF SavedModel, simplificando el proceso de ejecución de inferencias con sus modelos en diferentes dispositivos.
¿Por qué debería exportar a TF SavedModel?
El formato SavedModel de TensorFlow es parte del ecosistema de TensorFlow desarrollado por Google, como se muestra a continuación. Está diseñado para guardar y serializar modelos de TensorFlow sin problemas. Encapsula los detalles completos de los modelos, como la arquitectura, los pesos e incluso la información de compilación. Esto facilita compartir, implementar y continuar el entrenamiento en diferentes entornos.
El TF SavedModel tiene una ventaja clave: su compatibilidad. Funciona bien con TensorFlow Serving, TensorFlow Lite y TensorFlow.js. Esta compatibilidad facilita el intercambio y la implementación de modelos en diversas plataformas, incluidas aplicaciones web y móviles. El formato TF SavedModel es útil tanto para la investigación como para la producción. Proporciona una forma unificada de administrar sus modelos, asegurando que estén listos para cualquier aplicación.
Características principales de los modelos TF SavedModels
Estas son las características clave que hacen de TF SavedModel una gran opción para los desarrolladores de IA:
-
Portabilidad: TF SavedModel proporciona un formato de serialización hermético, recuperable y neutral en cuanto al lenguaje. Permiten que los sistemas y herramientas de nivel superior produzcan, consuman y transformen modelos de TensorFlow. Los SavedModels se pueden compartir e implementar fácilmente en diferentes plataformas y entornos.
-
Facilidad de implementación: TF SavedModel agrupa el gráfico computacional, los parámetros entrenados y los metadatos necesarios en un solo paquete. Se pueden cargar y usar fácilmente para la inferencia sin necesidad del código original que construyó el modelo. Esto hace que la implementación de modelos de TensorFlow sea sencilla y eficiente en diversos entornos de producción.
-
Gestión de Activos: TF SavedModel admite la inclusión de activos externos como vocabularios, incrustaciones o tablas de consulta. Estos activos se almacenan junto con la definición del grafo y las variables, lo que garantiza que estén disponibles cuando se carga el modelo. Esta característica simplifica la gestión y distribución de modelos que dependen de recursos externos.
Opciones de implementación con TF SavedModel
Antes de profundizar en el proceso de exportación de modelos YOLO11 al formato TF SavedModel, exploremos algunos escenarios de implementación típicos donde se utiliza este formato.
TF SavedModel proporciona una variedad de opciones para implementar sus modelos de aprendizaje automático:
-
TensorFlow Serving: TensorFlow Serving es un sistema de servicio flexible y de alto rendimiento diseñado para entornos de producción. Es compatible de forma nativa con los SavedModels de TF, lo que facilita la implementación y el servicio de sus modelos en plataformas en la nube, servidores locales o dispositivos perimetrales.
-
Plataformas en la nube: Los principales proveedores de nube como Google Cloud Platform (GCP), Amazon Web Services (AWS) y Microsoft Azure ofrecen servicios para implementar y ejecutar modelos TensorFlow, incluyendo TF SavedModels. Estos servicios proporcionan una infraestructura escalable y gestionada, lo que le permite implementar y escalar sus modelos fácilmente.
-
Dispositivos móviles e integrados: TensorFlow Lite, una solución ligera para ejecutar modelos de aprendizaje automático en dispositivos móviles, integrados y de IoT, admite la conversión de TF SavedModels al formato TensorFlow Lite. Esto permite implementar sus modelos en una amplia gama de dispositivos, desde teléfonos inteligentes y tabletas hasta microcontroladores y dispositivos de borde.
-
Entorno de ejecución de TensorFlow: Entorno de ejecución de TensorFlow (
tfrt
) es un runtime de alto rendimiento para ejecutar TensorFlow gráficos. Proporciona APIs de nivel inferior para cargar y ejecutar TF SavedModels en entornos C++. TensorFlow Runtime ofrece un mejor rendimiento en comparación con el runtime estándar de TensorFlow. Es adecuado para escenarios de implementación que requieren inferencia de baja latencia y una estrecha integración con bases de código C++ existentes.
Exportación de modelos YOLO11 a TF SavedModel
Al exportar modelos YOLO11 al formato TF SavedModel, mejoras su adaptabilidad y facilidad de implementación en diversas plataformas.
Instalación
Para instalar el paquete requerido, ejecute:
Instalación
# Install the required package for YOLO11
pip install ultralytics
Para obtener instrucciones detalladas y las mejores prácticas relacionadas con el proceso de instalación, consulte nuestra Guía de instalación de Ultralytics. Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra Guía de problemas comunes para obtener soluciones y consejos.
Uso
Todos los modelos Ultralytics YOLO11 están diseñados para admitir la exportación de fábrica, lo que facilita su integración en tu flujo de trabajo de implementación preferido. Puedes ver la lista completa de formatos de exportación y opciones de configuración compatibles para elegir la mejor configuración para tu aplicación.
Uso
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Argumentos de exportación
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
format |
str |
'saved_model' |
Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de implementación. |
imgsz |
int o tuple |
640 |
Tamaño de imagen deseado para la entrada del modelo. Puede ser un entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas. |
keras |
bool |
False |
Permite la exportación a formato Keras, proporcionando compatibilidad con el servicio y las API de TensorFlow. |
int8 |
bool |
False |
Activa la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida mínima de precisión, principalmente para dispositivos de borde. |
nms |
bool |
False |
Añade la supresión no máxima (NMS), esencial para un post-procesamiento de detección preciso y eficiente. |
batch |
int |
1 |
Especifica el tamaño del lote de inferencia del modelo exportado o el número máximo de imágenes que el modelo exportado procesará simultáneamente en predict modo. |
device |
str |
None |
Especifica el dispositivo para la exportación: CPU (device=cpu ), MPS para Apple silicon (device=mps ). |
Para obtener más detalles sobre el proceso de exportación, visita la página de documentación de Ultralytics sobre la exportación.
Implementación de modelos TF SavedModel YOLO11 exportados
Ahora que has exportado tu modelo YOLO11 al formato TF SavedModel, el siguiente paso es implementarlo. El primer paso principal y recomendado para ejecutar un modelo TF SavedModel es utilizar el YOLO("yolo11n_saved_model/")
método, como se mostró anteriormente en el fragmento de código de uso.
Sin embargo, para obtener instrucciones detalladas sobre cómo implementar sus modelos TF SavedModel, consulte los siguientes recursos:
-
TensorFlow Serving: Aquí está la documentación para desarrolladores sobre cómo implementar sus modelos TF SavedModel utilizando TensorFlow Serving.
-
Ejecutar un SavedModel de TensorFlow en Node.js: Una publicación de blog de TensorFlow sobre cómo ejecutar un SavedModel de TensorFlow en Node.js directamente sin conversión.
-
Implementación en la nube: Una publicación de blog de TensorFlow sobre la implementación de un modelo TensorFlow SavedModel en Cloud AI Platform.
Resumen
En esta guía, exploramos cómo exportar modelos Ultralytics YOLO11 al formato TF SavedModel. Al exportar a TF SavedModel, obtiene la flexibilidad de optimizar, implementar y escalar sus modelos YOLO11 en una amplia gama de plataformas.
Para obtener más detalles sobre su uso, visite la documentación oficial de TF SavedModel.
Para obtener más información sobre la integración de Ultralytics YOLO11 con otras plataformas y frameworks, no olvides consultar nuestra página de la guía de integración. Está repleta de excelentes recursos para ayudarte a aprovechar al máximo YOLO11 en tus proyectos.
Preguntas frecuentes
¿Cómo exporto un modelo Ultralytics YOLO al formato TensorFlow SavedModel?
Exportar un modelo Ultralytics YOLO al formato TensorFlow SavedModel es sencillo. Puede utilizar Python o la CLI para lograr esto:
Exportación de YOLO11 a TF SavedModel
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export the YOLO11 model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Consulte la documentación de exportación de Ultralytics para obtener más detalles.
¿Por qué debería usar el formato TensorFlow SavedModel?
El formato SavedModel de TensorFlow ofrece varias ventajas para la implementación de modelos:
- Portabilidad: Proporciona un formato neutral en cuanto al lenguaje, lo que facilita el intercambio y la implementación de modelos en diferentes entornos.
- Compatibilidad: Se integra perfectamente con herramientas como TensorFlow Serving, TensorFlow Lite y TensorFlow.js, que son esenciales para implementar modelos en diversas plataformas, incluidas aplicaciones web y móviles.
- Encapsulación completa: Codifica la arquitectura del modelo, los pesos y la información de compilación, lo que permite compartir y continuar el entrenamiento de forma sencilla.
Para obtener más beneficios y opciones de implementación, consulta las opciones de implementación del modelo YOLO de Ultralytics.
¿Cuáles son los escenarios de implementación típicos para TF SavedModel?
TF SavedModel se puede implementar en varios entornos, incluyendo:
- TensorFlow Serving: Ideal para entornos de producción que requieren un servicio de modelos escalable y de alto rendimiento.
- Plataformas en la nube: Admite los principales servicios en la nube como Google Cloud Platform (GCP), Amazon Web Services (AWS) y Microsoft Azure para la implementación escalable de modelos.
- Dispositivos móviles e integrados: El uso de TensorFlow Lite para convertir TF SavedModels permite la implementación en dispositivos móviles, dispositivos IoT y microcontroladores.
- Tiempo de ejecución de TensorFlow: Para entornos C++ que necesitan inferencia de baja latencia con mejor rendimiento.
Para obtener opciones de implementación detalladas, visita las guías oficiales sobre cómo implementar modelos de TensorFlow.
¿Cómo puedo instalar los paquetes necesarios para exportar modelos YOLO11?
Para exportar modelos YOLO11, necesita instalar el ultralytics
paquete. Ejecute el siguiente comando en su terminal:
pip install ultralytics
Para obtener instrucciones de instalación más detalladas y las mejores prácticas, consulta nuestra guía de instalación de Ultralytics. Si encuentras algún problema, consulta nuestra guía de problemas comunes.
¿Cuáles son las principales características del formato TensorFlow SavedModel?
El formato TF SavedModel es beneficioso para los desarrolladores de IA debido a las siguientes características:
- Portabilidad: Permite compartir e implementar en diversos entornos sin esfuerzo.
- Facilidad de implementación: Encapsula el gráfico computacional, los parámetros entrenados y los metadatos en un solo paquete, lo que simplifica la carga y la inferencia.
- Gestión de Activos: Admite activos externos como vocabularios, asegurando que estén disponibles cuando se cargue el modelo.
Para obtener más detalles, explore la documentación oficial de TensorFlow.