YOLO11 Exportación de modelos a TorchScript para una rápida implantación
El despliegue de modelos de visión por ordenador en diferentes entornos, incluidos sistemas integrados, navegadores web o plataformas con soporte limitado de Python , requiere una solución flexible y portátil. TorchScript se centra en la portabilidad y la capacidad de ejecutar modelos en entornos en los que no está disponible el marco completo de Python . Esto lo hace ideal para situaciones en las que es necesario desplegar las capacidades de visión por ordenador en varios dispositivos o plataformas.
Exporte a Torchscript para serializar sus Ultralytics YOLO11 para obtener compatibilidad entre plataformas y agilizar el despliegue. En esta guía, le mostraremos cómo exportar sus modelos YOLO11 al formato TorchScript , lo que le facilitará su uso en una amplia gama de aplicaciones.
¿Por qué exportar a TorchScript?
Desarrollada por los creadores de PyTorch, TorchScript es una potente herramienta para optimizar e implantar modelos PyTorch en diversas plataformas. Exportar modelos YOLO11 a TorchScript es crucial para pasar de la investigación a las aplicaciones reales. TorchScript PyTorch , que forma parte del marco PyTorch , ayuda a que esta transición sea más fluida, ya que permite utilizar los modelos en entornos que no admiten Python.
En este proceso intervienen dos técnicas: el rastreo y el scripting. El rastreo registra las operaciones durante la ejecución del modelo, mientras que el scripting permite definir modelos utilizando un subconjunto de Python. Estas técnicas garantizan que modelos como YOLO11 puedan seguir haciendo su magia incluso fuera de su entorno habitual Python .
TorchScript Los modelos también pueden optimizarse mediante técnicas como la fusión de operadores y mejoras en el uso de la memoria, lo que garantiza una ejecución eficiente. Otra ventaja de la exportación a TorchScript es su potencial para acelerar la ejecución del modelo en diversas plataformas de hardware. Crea una representación independiente y lista para la producción de su modelo PyTorch que puede integrarse en entornos C++, sistemas embebidos o desplegarse en aplicaciones web o móviles.
Características principales de los modelos TorchScript
TorchScript, una parte clave del ecosistema PyTorch , ofrece potentes funciones para optimizar y desplegar modelos de aprendizaje profundo.
Estas son las principales características que hacen de TorchScript una herramienta valiosa para los desarrolladores:
-
Ejecución gráfica estática: TorchScript utiliza una representación gráfica estática del cálculo del modelo, que es diferente de la ejecución gráfica dinámica de PyTorch. En la ejecución de grafos estáticos, el grafo computacional se define y compila una vez antes de la ejecución real, lo que mejora el rendimiento durante la inferencia.
-
Serialización de modelos: TorchScript permite serializar modelos PyTorch en un formato independiente de la plataforma. Los modelos serializados pueden cargarse sin necesidad del código original de Python , lo que permite su despliegue en distintos entornos de ejecución.
-
Compilación JIT: TorchScript utiliza la compilación Just-In-Time (JIT) para convertir los modelos 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 PyTorch a otros lenguajes como C++, Java y JavaScript. Esto facilita la integración de los modelos PyTorch en sistemas de software existentes escritos en lenguajes diferentes.
-
Conversión gradual: TorchScript ofrece un enfoque de conversión gradual, que le permite convertir de forma incremental partes de su modelo PyTorch en TorchScript. Esta flexibilidad resulta especialmente útil cuando se trata de modelos complejos o cuando se desea optimizar partes concretas del código.
Opciones de implantación en TorchScript
Antes de ver el código para exportar modelos YOLO11 al formato TorchScript , entendamos dónde se utilizan normalmente los modelos TorchScript .
TorchScript ofrece varias opciones de despliegue para modelos de aprendizaje automático, como:
-
API DE C++: El caso de uso más común de TorchScript es su API C++, que permite cargar y ejecutar modelos optimizados de TorchScript directamente dentro de aplicaciones C++. Esto es ideal para entornos de producción en los que Python puede no ser adecuado o no estar disponible. La API de C++ ofrece una ejecución eficiente y de bajo coste de los modelos TorchScript , maximizando el potencial de rendimiento.
-
Despliegue móvil: TorchScript ofrece herramientas para convertir modelos en formatos fácilmente desplegables en dispositivos móviles. PyTorch Mobile proporciona un tiempo de ejecución para ejecutar estos modelos dentro de las aplicaciones iOS y Android . Esto permite capacidades de inferencia offline de baja latencia, mejorando la experiencia del usuario y la privacidad de los datos.
-
Despliegue en la nube: los modelos TorchScript pueden desplegarse en servidores basados en la nube utilizando soluciones como TorchServe. Ofrece funciones como el versionado de modelos, la agrupación por lotes y la supervisión de métricas para un despliegue escalable en entornos de producción. El despliegue en la nube con TorchScript puede hacer que sus modelos sean accesibles a través de API u otros servicios web.
Exportar a TorchScript: Conversión de su modelo YOLO11
Exportar modelos de YOLO11 a TorchScript facilita su uso en distintos lugares y ayuda a que se ejecuten con mayor rapidez y eficacia. Esto es genial para cualquiera que desee utilizar modelos de aprendizaje profundo de forma más eficaz en aplicaciones del mundo real.
Instalación
Para instalar el paquete necesario, ejecute
Para obtener instrucciones detalladas y buenas prácticas relacionadas con el proceso de instalación, consulta nuestra guía de instalaciónUltralytics . Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra guía de problemas comunes para obtener soluciones y consejos.
Utilización
Antes de entrar en las instrucciones de uso, es importante tener en cuenta que, aunque todos los modelos deUltralytics YOLO11 están disponibles para la exportación, aquí puede asegurarse de que el modelo que seleccione admite la función de exportación.
Utilización
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")
Argumentos de exportación
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
format |
str |
'torchscript' |
Formato de destino para el modelo exportado, que define la compatibilidad con varios entornos de despliegue. |
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. |
optimize |
bool |
False |
Aplica la optimización para dispositivos móviles, reduciendo potencialmente el tamaño del modelo y mejorando el rendimiento. |
nms |
bool |
False |
Añade supresión no máxima (NMS), esencial para un postprocesado de detección preciso y eficaz. |
batch |
int |
1 |
Especifica el tamaño de la 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 predict modo. |
Para más detalles sobre el proceso de exportación, visite la página de documentaciónUltralytics sobre exportación.
Despliegue de modelos exportados de YOLO11 TorchScript
Después de exportar con éxito sus modelos Ultralytics YOLO11 al formato TorchScript , ya puede desplegarlos. El primer paso principal y recomendado para ejecutar un modelo TorchScript es utilizar el método YOLO("model.torchscript"), como se indica en el fragmento de código de uso anterior. Sin embargo, para obtener instrucciones detalladas sobre el despliegue de sus modelos TorchScript en otras configuraciones, eche un vistazo a los siguientes recursos:
-
Explorar la implantación móvil: En PyTorch Mobile Documentation proporciona directrices completas para desplegar modelos en dispositivos móviles, garantizando que sus aplicaciones sean eficientes y tengan capacidad de respuesta.
-
Despliegue maestro del lado del servidor: Aprenda a desplegar modelos en el servidor con TorchServe, que ofrece un tutorial paso a paso para un servicio de modelos escalable y eficiente.
-
Implantación de C++: Sumérjase en el tutorial sobre carga de un modelo TorchScript en C++, que facilita la integración de sus 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, podrá optimizar el rendimiento de los modelos YOLO11 y obtener la flexibilidad necesaria para desplegarlos en distintas plataformas y entornos.
Para más detalles sobre su uso, visite la documentación oficial deTorchScript.
Además, si quieres saber más sobre otras integraciones de Ultralytics YOLO11 , visita nuestra página de guía de integración. Allí encontrarás un montón de recursos e información útiles.
PREGUNTAS FRECUENTES
¿Qué es Ultralytics YOLO11 model export to TorchScript?
Exportar un modelo Ultralytics YOLO11 a TorchScript permite un despliegue flexible y multiplataforma. TorchScript PyTorch , que forma parte del ecosistema , facilita la serialización de modelos, que luego pueden ejecutarse en entornos que carecen de soporte para Python . Esto lo hace ideal para desplegar modelos en sistemas embebidos, 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 utilizando Ultralytics?
Para exportar un modelo YOLO11 a TorchScript, puede utilizar el siguiente código de ejemplo:
Utilización
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")
Para más detalles sobre el proceso de exportación, consulte la documentación deUltralytics sobre exportación.
¿Por qué debería utilizar TorchScript para desplegar los modelos de YOLO11 ?
La utilización de TorchScript para desplegar los modelos YOLO11 ofrece varias ventajas:
- Portabilidad: Los modelos exportados pueden ejecutarse en entornos sin necesidad de Python, como aplicaciones C++, sistemas integrados o dispositivos móviles.
- Optimización: TorchScript admite la ejecución estática de gráficos y la compilación Just-In-Time (JIT), que pueden optimizar el rendimiento de los modelos.
- Integración entre lenguajes: los modelos TorchScript pueden integrarse en otros lenguajes de programación, lo que aumenta su flexibilidad y capacidad de ampliación.
- Serialización: Los modelos pueden serializarse, lo que permite una carga e inferencia independientes de la plataforma.
Para más información sobre el despliegue, visite PyTorch Mobile Documentation, TorchServe Documentation, y C++ Deployment Guide.
¿Cuáles son los pasos de instalación para exportar modelos de YOLO11 a TorchScript?
Para instalar el paquete necesario para exportar los modelos YOLO11 , utilice el siguiente comando:
Para obtener instrucciones detalladas, visite la guía de instalaciónUltralytics . Si surge algún problema durante la instalación, consulta la guía de problemas comunes.
¿Cómo despliego mis modelos exportados de TorchScript YOLO11 ?
Tras exportar los modelos de YOLO11 al formato TorchScript , puede desplegarlos en diversas plataformas:
- API C++: Ideal para entornos de producción de baja sobrecarga y alta eficiencia.
- Despliegue móvil: Utilice PyTorch Mobile para las aplicaciones iOS y Android .
- Despliegue en la nube: Utilice servicios como TorchServe para un despliegue escalable del lado del servidor.
Explore directrices exhaustivas para implantar modelos en estos entornos y aprovechar al máximo las capacidades de TorchScript.