Saltar al contenido

YOLOv8 Exportaci贸n de modelos a TorchScript para un despliegue r谩pido

El despliegue de modelos de visi贸n por ordenador en distintos entornos, como 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 en la capacidad de ejecutar modelos en entornos en los que no est谩 disponible el marco completo de Python . Esto lo hace ideal para escenarios en los que necesites desplegar tus capacidades de visi贸n por ordenador en varios dispositivos o plataformas.

Exporta a Torchscript para serializar tus Ultralytics YOLOv8 para obtener compatibilidad entre plataformas y agilizar el despliegue. En esta gu铆a, te mostraremos c贸mo exportar tus modelos YOLOv8 al formato TorchScript , para que te resulte m谩s f谩cil utilizarlos en una gama m谩s amplia de aplicaciones.

驴Por qu茅 debes exportar a TorchScript?

Torchscript Visi贸n general

Desarrollado por los creadores de PyTorch, TorchScript es una potente herramienta para optimizar y desplegar modelos PyTorch en diversas plataformas. Exportar modelos YOLOv8 a TorchScript es crucial para pasar de la investigaci贸n a las aplicaciones del mundo real. TorchScript PyTorch , que forma parte del marco de PyTorch , ayuda a que esta transici贸n sea m谩s suave, ya que permite utilizar los modelos de en entornos que no admiten Python.

El proceso implica dos t茅cnicas: rastreo y 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 YOLOv8 puedan seguir haciendo su magia incluso fuera de su entorno habitual Python .

TorchScript Gui贸n y rastreo

TorchScript Los modelos tambi茅n pueden optimizarse mediante t茅cnicas como la fusi贸n de operadores y refinamientos en el uso de la memoria, garantizando una ejecuci贸n eficiente. Otra ventaja de exportar a TorchScript es su potencial para acelerar la ejecuci贸n del modelo en diversas plataformas de hardware. Crea una representaci贸n aut贸noma y lista para la producci贸n de tu 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 , proporciona potentes funciones para optimizar y desplegar modelos de aprendizaje profundo.

TorchScript Caracter铆sticas

脡stas son las caracter铆sticas clave 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 te permite serializar modelos PyTorch en un formato independiente de la plataforma. Los modelos serializados pueden cargarse sin necesidad del c贸digo Python original, 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 gr谩fico computacional del modelo, permitiendo una ejecuci贸n eficiente en los dispositivos de destino.

  • Integraci贸n entre lenguajes: Con TorchScript, puedes 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 proporciona un enfoque de conversi贸n gradual, que te permite convertir incrementalmente partes de tu modelo PyTorch en TorchScript. Esta flexibilidad es especialmente 煤til cuando se trata de modelos complejos o cuando quieres optimizar partes concretas del c贸digo.

Opciones de despliegue en TorchScript

Antes de ver el c贸digo para exportar los modelos YOLOv8 al formato TorchScript , vamos a entender d贸nde se utilizan normalmente los modelos TorchScript .

TorchScript ofrece varias opciones de despliegue para los modelos de aprendizaje autom谩tico, como:

  • API DE C++: El caso de uso m谩s com煤n de TorchScript es su API C++, que te 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 C++ ofrece una ejecuci贸n eficiente y de baja sobrecarga 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 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. Proporciona funciones como el versionado de modelos, el procesamiento 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 tus modelos sean accesibles mediante API u otros servicios web.

Exportar a TorchScript: Convertir tu modelo YOLOv8

Exportar modelos de YOLOv8 a TorchScript facilita su uso en distintos lugares y ayuda a que se ejecuten m谩s r谩pida y eficazmente. Esto es estupendo 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, ejecuta

Instalaci贸n

# Install the required package for YOLOv8
pip install ultralytics

Para obtener instrucciones detalladas y buenas pr谩cticas relacionadas con el proceso de instalaci贸n, consulta nuestra gu铆a de instalaci贸nUltralytics . Mientras instalas los paquetes necesarios para YOLOv8, si encuentras alguna dificultad, consulta nuestra gu铆a de Problemas comunes para encontrar soluciones y consejos.

Utilizaci贸n

Antes de sumergirte en las instrucciones de uso, es importante tener en cuenta que, aunque todos los modelos deUltralytics YOLOv8 est谩n disponibles para exportar, aqu铆 puedes asegurarte de que el modelo que seleccionas admite la funci贸n de exportaci贸n.

Utilizaci贸n

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to TorchScript format
model.export(format='torchscript')  # creates 'yolov8n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO('yolov8n.torchscript')

# Run inference
results = torchscript_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TorchScript format
yolo export model=yolov8n.pt format=torchscript  # creates 'yolov8n.torchscript'

# Run inference with the exported model
yolo predict model=yolov8n.torchscript source='https://ultralytics.com/images/bus.jpg'

Para m谩s detalles sobre el proceso de exportaci贸n, visita la p谩gina de documentaci贸nUltralytics sobre exportaci贸n.

Despliegue de modelos exportados de YOLOv8 TorchScript

Despu茅s de exportar con 茅xito tus modelos Ultralytics YOLOv8 al formato TorchScript , ya puedes desplegarlos. El primer paso principal y recomendado para ejecutar un modelo TorchScript es utilizar el m茅todo YOLO("modelo.torchscript"), como se indica en el fragmento de c贸digo de uso anterior. Sin embargo, para obtener instrucciones detalladas sobre c贸mo desplegar tus modelos TorchScript en otras configuraciones distintas, echa un vistazo a los siguientes recursos:

  • Explora la implantaci贸n m贸vil: La documentaci贸n para m贸viles de PyTorch proporciona directrices completas para desplegar modelos en dispositivos m贸viles, garantizando que tus aplicaciones sean eficientes y tengan capacidad de respuesta.

  • Despliegue maestro del lado del servidor: Aprende a desplegar modelos en el lado del servidor con TorchServe, ofreciendo un tutorial paso a paso para un servicio de modelos escalable y eficiente.

  • Implementar la implantaci贸n de C: Sum茅rgete en el Tutorial sobre la carga de un modelo TorchScript en C++, 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 YOLOv8 al formato TorchScript . Siguiendo las instrucciones proporcionadas, puedes optimizar el rendimiento de los modelos YOLOv8 y obtener la flexibilidad necesaria para desplegarlos en diversas plataformas y entornos.

Para m谩s detalles sobre su uso, visita la documentaci贸n oficial deTorchScript.

Adem谩s, si quieres saber m谩s sobre otras integraciones de Ultralytics YOLOv8 , visita nuestra p谩gina de gu铆a de integraciones. All铆 encontrar谩s un mont贸n de recursos e ideas 煤tiles.



Creado 2024-03-01, Actualizado 2024-03-03
Autores: glenn-jocher (1), abirami-vina (2)

Comentarios