Exportación del modelo YOLO11 a TorchScript para una implementación rápida
Implementar modelos de visión artificial en diferentes entornos, incluyendo sistemas embebidos, navegadores web o plataformas con soporte limitado de Python, requiere una solución flexible y portable. TorchScript se centra en la portabilidad y la capacidad de ejecutar modelos en entornos donde el framework completo de Python no está disponible. Esto lo hace ideal para escenarios donde necesita implementar sus capacidades de visión artificial en varios dispositivos o plataformas.
Exporte a TorchScript para serializar sus modelos Ultralytics YOLO11 para compatibilidad multiplataforma y una implementación optimizada. En esta guía, le mostraremos cómo exportar sus modelos YOLO11 al formato TorchScript, lo que facilita su uso en una gama más amplia de aplicaciones.
¿Por qué debería exportar a TorchScript?
Desarrollado por los creadores de PyTorch, TorchScript es una herramienta poderosa para optimizar e implementar modelos de PyTorch en una variedad de plataformas. Exportar modelos YOLO11 a TorchScript es crucial para pasar de la investigación a las aplicaciones del mundo real. TorchScript, que forma parte del framework de PyTorch, ayuda a que esta transición sea más fluida al permitir que los modelos de PyTorch se utilicen en entornos que no son compatibles con Python.
El proceso involucra dos técnicas: tracing y scripting. Tracing registra las operaciones durante la ejecución del modelo, mientras que scripting permite la definición de modelos utilizando un subconjunto de Python. Estas técnicas aseguran que modelos como YOLO11 puedan seguir haciendo su magia incluso fuera de su entorno Python habitual.
Los modelos de TorchScript también se pueden optimizar mediante técnicas como la fusión de operadores y las mejoras en el uso de la memoria, lo que garantiza una ejecución eficiente. Otra ventaja de exportar a TorchScript es su potencial para acelerar la ejecución del modelo en varias plataformas de hardware. Crea una representación independiente y lista para producción de su modelo PyTorch que se puede integrar en entornos C++, sistemas embebidos o implementarse en aplicaciones web o móviles.
Características principales de los modelos TorchScript
TorchScript, una parte clave del ecosistema de PyTorch, proporciona funciones potentes para optimizar e implementar modelos de aprendizaje profundo.
Estas son las características clave que hacen de TorchScript una herramienta valiosa para los desarrolladores:
-
Ejecución de grafo estático: TorchScript utiliza una representación de grafo estático del cálculo del modelo, que es diferente de la ejecución de grafo dinámico de PyTorch. En la ejecución de grafo estático, el grafo computacional se define y compila una vez antes de la ejecución real, lo que resulta en un mejor rendimiento durante la inferencia.
-
Serialización de modelos: TorchScript le permite serializar modelos de PyTorch en un formato independiente de la plataforma. Los modelos serializados se pueden cargar sin necesidad del código Python original, lo que permite la implementación en diferentes entornos de tiempo de ejecución.
-
Compilación JIT: TorchScript utiliza la compilación Just-In-Time (JIT) para convertir los modelos de PyTorch en una representación intermedia optimizada. JIT compila el grafo computacional del modelo, lo que permite una ejecución eficiente en los dispositivos de destino.
-
Integración entre lenguajes: Con TorchScript, puede exportar modelos de PyTorch a otros lenguajes como C++, Java y JavaScript. Esto facilita la integración de modelos de PyTorch en sistemas de software existentes escritos en diferentes lenguajes.
-
Conversión gradual: TorchScript proporciona un enfoque de conversión gradual, lo que le permite convertir incrementalmente partes de su modelo de PyTorch en TorchScript. Esta flexibilidad es particularmente útil cuando se trata de modelos complejos o cuando desea optimizar porciones específicas del código.
Opciones de implementación en TorchScript
Antes de analizar el código para exportar modelos YOLO11 al formato TorchScript, comprendamos dónde se utilizan normalmente los modelos TorchScript.
TorchScript ofrece varias opciones de implementación para modelos de aprendizaje automático, tales como:
-
API de C++: El caso de uso más común para TorchScript es su API de C++, que le permite cargar y ejecutar modelos TorchScript optimizados directamente dentro de las aplicaciones de C++. Esto es ideal para entornos de producción donde Python puede no ser adecuado o estar disponible. La API de C++ ofrece una ejecución eficiente y de baja sobrecarga de los modelos TorchScript, lo que maximiza el potencial de rendimiento.
-
Implementación móvil: TorchScript ofrece herramientas para convertir modelos en formatos fácilmente implementables en dispositivos móviles. PyTorch Mobile proporciona un tiempo de ejecución para ejecutar estos modelos dentro de aplicaciones iOS y Android. Esto permite capacidades de inferencia offline y de baja latencia, lo que mejora la experiencia del usuario y la privacidad de los datos.
-
Implementación en la nube: Los modelos TorchScript se pueden implementar en servidores basados en la nube utilizando soluciones como TorchServe. Proporciona características como el versionado de modelos, el procesamiento por lotes y la supervisión de métricas para una implementación escalable en entornos de producción. La implementación en la nube con TorchScript puede hacer que sus modelos sean accesibles a través de API u otros servicios web.
Exportar a TorchScript: Convirtiendo su modelo YOLO11
Exportar modelos YOLO11 a TorchScript facilita su uso en diferentes lugares y ayuda a que se ejecuten de forma más rápida y eficiente. Esto es ideal para cualquiera que busque utilizar modelos de aprendizaje profundo de forma más eficaz en aplicaciones del mundo real.
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 TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
Argumentos de exportación
Argumento | Tipo | Predeterminado | Descripción |
---|---|---|---|
format |
str |
'torchscript' |
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. |
dynamic |
bool |
False |
Permite tamaños de entrada dinámicos, lo que mejora la flexibilidad en el manejo de diferentes dimensiones de imagen. |
optimize |
bool |
False |
Aplica la optimización para dispositivos móviles, lo que podría reducir el tamaño del modelo y mejorar el rendimiento. |
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: GPU (device=0 ), 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 TorchScript YOLO11 exportados
Después de exportar con éxito tus modelos Ultralytics YOLO11 al formato TorchScript, ahora puedes implementarlos. El primer paso principal y recomendado para ejecutar un modelo TorchScript es utilizar el método YOLO("model.torchscript"), como se describe en el fragmento de código de uso anterior. Sin embargo, para obtener instrucciones detalladas sobre cómo implementar tus modelos TorchScript en otras configuraciones, consulta los siguientes recursos:
-
Explora la implementación móvil: La Documentación móvil de PyTorch proporciona directrices exhaustivas para la implementación de modelos en dispositivos móviles, garantizando que tus aplicaciones sean eficientes y tengan buena capacidad de respuesta.
-
Domina la implementación del lado del servidor: Aprende a implementar modelos del lado del servidor con TorchServe, que ofrece un tutorial paso a paso para el servicio de modelos escalable y eficiente.
-
Implementa la implementación en C++: Sumérgete en el Tutorial sobre la carga de un modelo TorchScript en C++, lo que facilita la integración de tus modelos TorchScript en aplicaciones C++ para mejorar el rendimiento y la versatilidad.
Resumen
En esta guía, exploramos el proceso de exportación de modelos Ultralytics YOLO11 al formato TorchScript. Siguiendo las instrucciones proporcionadas, puedes optimizar los modelos YOLO11 para obtener rendimiento y ganar la flexibilidad de implementarlos en diversas plataformas y entornos.
Para obtener más detalles sobre el uso, visita la documentación oficial de TorchScript.
Además, si deseas obtener más información sobre otras integraciones de Ultralytics YOLO11, visita nuestra página de la guía de integración. Allí encontrarás muchos recursos e información útiles.
Preguntas frecuentes
¿Qué es la exportación del modelo Ultralytics YOLO11 a TorchScript?
La exportación de un modelo Ultralytics YOLO11 a TorchScript permite una implementación flexible y multiplataforma. TorchScript, que forma parte del ecosistema PyTorch, facilita la serialización de modelos, que luego se pueden ejecutar en entornos que carecen de soporte para python. Esto lo hace ideal para implementar modelos en sistemas integrados, entornos C++, aplicaciones móviles e incluso navegadores web. La exportación a TorchScript permite un rendimiento eficiente y una mayor aplicabilidad de sus modelos YOLO11 en diversas plataformas.
¿Cómo puedo exportar mi modelo YOLO11 a TorchScript usando Ultralytics?
Para exportar un modelo YOLO11 a TorchScript, puedes utilizar el siguiente código de ejemplo:
Uso
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
Para obtener más detalles sobre el proceso de exportación, consulta la documentación de Ultralytics sobre la exportación.
¿Por qué debería usar TorchScript para implementar modelos YOLO11?
El uso de TorchScript para la implementación de modelos YOLO11 ofrece varias ventajas:
- Portabilidad: Los modelos exportados se pueden ejecutar en entornos sin necesidad de python, como aplicaciones C++, sistemas integrados o dispositivos móviles.
- Optimización: TorchScript admite la ejecución de gráficos estáticos y la compilación Just-In-Time (JIT), lo que puede optimizar el rendimiento del modelo.
- Integración entre lenguajes: Los modelos TorchScript se pueden integrar en otros lenguajes de programación, lo que mejora la flexibilidad y la capacidad de expansión.
- Serialización: Los modelos se pueden serializar, lo que permite la carga y la inferencia independientes de la plataforma.
Para obtener más información sobre la implementación, visita la Documentación móvil de PyTorch, la Documentación de TorchServe y la Guía de implementación en C++.
¿Cuáles son los pasos de instalación para exportar modelos YOLO11 a TorchScript?
Para instalar el paquete necesario para exportar modelos YOLO11, utiliza el siguiente comando:
Instalación
# Install the required package for YOLO11
pip install ultralytics
Para obtener instrucciones detalladas, visita la guía de instalación de Ultralytics. Si surge algún problema durante la instalación, consulta la guía de problemas comunes.
¿Cómo implemento mis modelos TorchScript YOLO11 exportados?
Después de exportar los modelos YOLO11 al formato TorchScript, puedes implementarlos en una variedad de plataformas:
- API de C++: Ideal para entornos de producción de baja sobrecarga y alta eficiencia.
- Implementación móvil: Utiliza PyTorch Mobile para aplicaciones iOS y Android.
- Implementación en la nube: Utiliza servicios como TorchServe para la implementación escalable del lado del servidor.
Explora las directrices exhaustivas para la implementación de modelos en estas configuraciones para aprovechar al máximo las capacidades de TorchScript.