Aprende a exportar al formato TF SavedModel desde YOLO26
Desplegar modelos de machine learning puede ser todo un reto. Sin embargo, utilizar un formato de modelo eficiente y flexible puede facilitarte el trabajo. TF SavedModel es un framework de machine learning de código abierto que utiliza TensorFlow para cargar modelos de forma coherente. Es como una maleta para modelos de TensorFlow, lo que facilita su transporte y uso en diferentes dispositivos y sistemas.
Aprender a exportar modelos de Ultralytics YOLO26 a TF SavedModel te ayudará a desplegar modelos fácilmente en diversas plataformas y entornos. En esta guía, veremos cómo convertir tus modelos al formato TF SavedModel, simplificando el proceso de ejecución de inferencias con tus modelos en distintos dispositivos.
¿Por qué deberías exportar a TF SavedModel?
El formato TensorFlow SavedModel forma parte del ecosistema de TensorFlow desarrollado por Google, tal y como se muestra a continuación. Está diseñado para guardar y serializar modelos de TensorFlow sin complicaciones. Encapsula los detalles completos de los modelos, como la arquitectura, los pesos e incluso la información de compilación. Esto facilita compartir, desplegar y continuar el entrenamiento en diferentes entornos.
TF SavedModel tiene una ventaja clave: su compatibilidad. Funciona bien con TensorFlow Serving, TensorFlow Lite y TensorFlow.js. Esta compatibilidad facilita compartir y desplegar modelos en diversas plataformas, incluidas aplicaciones web y móviles. El formato TF SavedModel es útil tanto para investigación como para producción. Proporciona una forma unificada de gestionar tus modelos, asegurando que estén listos para cualquier aplicación.
Características clave de los TF SavedModel
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 neutro en cuanto al lenguaje. Permite que los sistemas y herramientas de alto nivel produzcan, consuman y transformen modelos de TensorFlow. Los SavedModels pueden compartirse y desplegarse fácilmente en diferentes plataformas y entornos.
-
Facilidad de despliegue: TF SavedModel agrupa el grafo computacional, los parámetros entrenados y los metadatos necesarios en un único paquete. Se pueden cargar y utilizar fácilmente para inferencias sin necesidad del código original con el que se creó el modelo. Esto hace que el despliegue de modelos de TensorFlow sea sencillo y eficiente en diversos entornos de producción.
-
Gestión de activos: TF SavedModel admite la inclusión de activos externos como vocabularios, embeddings o tablas de búsqueda. Estos activos se almacenan junto con la definición del grafo y las variables, lo que garantiza que estén disponibles cuando se cargue el modelo. Esta característica simplifica la gestión y distribución de modelos que dependen de recursos externos.
Opciones de despliegue con TF SavedModel
Antes de profundizar en el proceso de exportación de modelos YOLO26 al formato TF SavedModel, exploremos algunos escenarios de despliegue típicos en los que se utiliza este formato.
TF SavedModel ofrece una gama de opciones para desplegar tus modelos de machine learning:
-
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 TF SavedModels, lo que facilita el despliegue y servicio de tus modelos en plataformas en la nube, servidores locales o dispositivos de borde.
-
Plataformas en la nube: Los principales proveedores de nube como Google Cloud Platform (GCP), Amazon Web Services (AWS) y Microsoft Azure ofrecen servicios para desplegar y ejecutar modelos de TensorFlow, incluidos los TF SavedModels. Estos servicios proporcionan una infraestructura escalable y gestionada que te permite desplegar y escalar tus modelos fácilmente.
-
Dispositivos móviles y embebidos: TensorFlow Lite, una solución ligera para ejecutar modelos de machine learning en dispositivos móviles, embebidos e IoT, permite convertir TF SavedModels al formato TensorFlow Lite. Esto te permite desplegar tus modelos en una amplia gama de dispositivos, desde smartphones y tablets hasta microcontroladores y dispositivos de borde.
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt) es un motor de ejecución de alto rendimiento para ejecutar grafos de TensorFlow. Proporciona APIs de bajo nivel 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 despliegue que requieren inferencia de baja latencia y una integración estrecha con bases de código C++ existentes.
Exportar modelos YOLO26 a TF SavedModel
Al exportar modelos YOLO26 al formato TF SavedModel, mejoras su adaptabilidad y facilidad de despliegue en diversas plataformas.
Instalación
Para instalar el paquete requerido, ejecuta:
# Install the required package for YOLO26
pip install ultralyticsPara obtener instrucciones detalladas y mejores prácticas relacionadas con el proceso de instalación, consulta nuestra guía de instalación de Ultralytics. Si encuentras alguna dificultad al instalar los paquetes necesarios para YOLO26, consulta nuestra guía de problemas comunes para obtener soluciones y consejos.
Uso
Todos los modelos Ultralytics YOLO26 están diseñados para soportar la exportación de forma inmediata, facilitando su integración en tu flujo de trabajo de despliegue preferido. Puedes ver la lista completa de formatos de exportación compatibles y opciones de configuración para elegir la mejor configuración para tu aplicación.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
# Run inference
results = tf_savedmodel_model("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 número entero para imágenes cuadradas o una tupla (height, width) para dimensiones específicas. |
keras | bool | False | Permite la exportación al formato Keras, proporcionando compatibilidad con TensorFlow Serving y sus APIs. |
int8 | bool | False | Activa la cuantización INT8, comprimiendo aún más el modelo y acelerando la inferencia con una pérdida de precisión mínima, principalmente para dispositivos de borde (edge). |
nms | bool | False | Añade la supresión de no máximos (NMS), esencial para un posprocesamiento de detección preciso y eficiente. |
batch | int | 1 | Especifica el tamaño de inferencia por lotes del modelo de exportación o el número máximo de imágenes que el modelo exportado procesará simultáneamente en modo predict. |
data | str | 'coco8.yaml' | Ruta al archivo de configuración del dataset (por defecto: coco8.yaml), esencial para la cuantización. |
fraction | float | 1.0 | Especifica la fracción del conjunto de datos a usar para la calibración de cuantización INT8. Permite calibrar sobre un subconjunto del conjunto de datos completo, útil para experimentos o cuando los recursos son limitados. Si no se especifica con INT8 activado, se usará el conjunto de datos completo. |
device | str | None | Especifica el dispositivo para exportar: CPU (device=cpu), MPS para Apple silicon (device=mps). |
Para más detalles sobre el proceso de exportación, visita la página de documentación de Ultralytics sobre exportación.
Desplegar modelos YOLO26 TF SavedModel exportados
Ahora que has exportado tu modelo YOLO26 al formato TF SavedModel, el siguiente paso es desplegarlo. El primer paso recomendado para ejecutar un modelo TF SavedModel es utilizar el método YOLO("yolo26n_saved_model/"), tal y como se mostró anteriormente en el fragmento de código de uso.
Sin embargo, para obtener instrucciones detalladas sobre cómo desplegar tus modelos TF SavedModel, echa un vistazo a los siguientes recursos:
-
TensorFlow Serving: Aquí tienes la documentación para desarrolladores sobre cómo desplegar tus modelos TF SavedModel usando TensorFlow Serving.
-
Ejecutar un TensorFlow SavedModel en Node.js: Una entrada del blog de TensorFlow sobre cómo ejecutar un TensorFlow SavedModel en Node.js directamente sin conversión.
-
Despliegue en la nube: Una entrada del blog de TensorFlow sobre cómo desplegar un modelo TensorFlow SavedModel en Cloud AI Platform.
Resumen
En esta guía, hemos explorado cómo exportar modelos de Ultralytics YOLO26 al formato TF SavedModel. Al exportar a TF SavedModel, obtienes la flexibilidad para optimizar, desplegar y escalar tus modelos YOLO26 en una amplia gama de plataformas.
Para más detalles sobre su uso, visita la documentación oficial de TF SavedModel.
Para más información sobre la integración de Ultralytics YOLO26 con otras plataformas y frameworks, no olvides consultar nuestra página de guía de integración. Está llena de grandes recursos para ayudarte a aprovechar al máximo YOLO26 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. Puedes usar Python o la CLI para lograrlo:
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")Consulta la documentación de exportación de Ultralytics para más detalles.
¿Por qué debería usar el formato TensorFlow SavedModel?
El formato TensorFlow SavedModel ofrece varias ventajas para el despliegue de modelos:
- Portabilidad: Proporciona un formato neutro en cuanto al lenguaje, lo que facilita compartir y desplegar modelos en diferentes entornos.
- Compatibilidad: Se integra perfectamente con herramientas como TensorFlow Serving, TensorFlow Lite y TensorFlow.js, que son esenciales para desplegar modelos en diversas plataformas, incluyendo 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 directa.
Para más beneficios y opciones de despliegue, consulta las opciones de despliegue de modelos YOLO de Ultralytics.
¿Cuáles son los escenarios típicos de despliegue para TF SavedModel?
TF SavedModel puede desplegarse 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 un despliegue de modelos escalable.
- Dispositivos móviles y embebidos: Usar TensorFlow Lite para convertir TF SavedModels permite el despliegue en dispositivos móviles, dispositivos IoT y microcontroladores.
- TensorFlow Runtime: Para entornos C++ que necesitan una inferencia de baja latencia con un mejor rendimiento.
Para opciones de despliegue detalladas, visita las guías oficiales sobre despliegue de modelos TensorFlow.
¿Cómo puedo instalar los paquetes necesarios para exportar modelos YOLO26?
Para exportar modelos YOLO26, necesitas instalar el paquete ultralytics. Ejecuta el siguiente comando en tu terminal:
pip install ultralyticsPara instrucciones de instalación más detalladas y 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 características clave del formato TensorFlow SavedModel?
El formato TF SavedModel es beneficioso para los desarrolladores de IA debido a las siguientes características:
- Portabilidad: Permite compartir y desplegar sin esfuerzo en diversos entornos.
- Facilidad de despliegue: Encapsula el grafo computacional, los parámetros entrenados y los metadatos en un único 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 carga el modelo.
Para más detalles, explora la documentación oficial de TensorFlow.