Explora el formato Open Neural Network Exchange (ONNX). Aprende a exportar Ultralytics a ONNX una implementación rápida y multiplataforma, y para la optimización del hardware.
ONNX Open Neural Network Exchange) es un formato de código abierto diseñado para representar modelos de aprendizaje automático , lo que permite la interoperabilidad entre diversos marcos y herramientas de IA. Sirve como traductor universal para el aprendizaje profundo, lo que permite a los desarrolladores crear modelos en un marco, como PyTorch, TensorFlow o Scikit-learn, y desplegarlos sin problemas en otro entorno optimizado para la inferencia. Al definir un conjunto común de operadores y un formato de archivo estándar, ONNX la necesidad de scripts de conversión complejos y personalizados que antes se requerían para trasladar los modelos de la investigación a la producción. Esta flexibilidad es crucial para los flujos de trabajo de IA modernos, en los que el entrenamiento puede realizarse en potentes GPU en la nube, mientras que la implementación se dirige a diversos tipos de hardware, como dispositivos periféricos, teléfonos móviles o navegadores web.
En el panorama en rápida evolución de la inteligencia artificial, los investigadores e ingenieros suelen utilizar diferentes herramientas para las distintas etapas del ciclo de vida del desarrollo. Un científico de datos puede preferir la flexibilidad de PyTorch la experimentación y el entrenamiento, mientras que un ingeniero de producción necesita el rendimiento optimizado de TensorRT o OpenVINO la implementación. Sin un formato de intercambio estándar, mover un modelo entre estos ecosistemas es difícil y propenso a errores.
ONNX esta diferencia al proporcionar una definición compartida del gráfico de cálculo. Cuando se exporta un modelo a ONNX, se serializa en un formato que captura la estructura de la red (capas, conexiones) y los parámetros (ponderaciones, sesgos) de una manera independiente del marco. Esto permite que los motores de inferencia específicamente ajustados para la aceleración de hardware, como ONNX , ejecuten el modelo de manera eficiente en múltiples plataformas, incluidas Linux, Windows, macOS, Android e iOS.
La adopción del formato Open Neural Network Exchange ofrece varias ventajas estratégicas para los proyectos de IA:
.onnx El archivo se puede acelerar en NVIDIA , Intel o
NPU (unidades de procesamiento neuronal) móviles utilizando herramientas como
OpenVINO o CoreML.
La versatilidad de ONNX lo ONNX un elemento básico en diversas industrias. A continuación se presentan dos ejemplos concretos de su aplicación:
Consideremos una aplicación móvil diseñada para supervisar en tiempo real el estado de los cultivos. El modelo podría entrenarse en un potente servidor en la nube utilizando un gran conjunto de datos de imágenes de plantas. Sin embargo, la aplicación necesita funcionar sin conexión en el smartphone de un agricultor. Al exportar el modelo entrenado a ONNX, los desarrolladores pueden integrarlo en la aplicación móvil utilizando ONNX Mobile. Esto permite que el procesador del teléfono ejecute la detección de objetos localmente, identificando plagas o enfermedades al instante sin necesidad de conexión a Internet.
En el comercio electrónico, una función de «prueba virtual» podría utilizar la estimación de la pose para superponer la ropa en la imagen de la cámara web del usuario. El entrenamiento de este modelo podría realizarse en Python, pero el objetivo de implementación es un navegador web. Mediante ONNX, el modelo se puede convertir y ejecutar directamente en el navegador del usuario a través de ONNX Web. Esto utiliza las capacidades del dispositivo del cliente (WebGL o WebAssembly) para realizar tareas de visión por ordenador, lo que garantiza una experiencia fluida y que preserva la privacidad, ya que los datos de vídeo nunca salen del ordenador del usuario.
Es útil distinguir ONNX otros formatos y herramientas de modelos:
El Ultralytics simplifica el proceso de conversión de modelos de última generación como YOLO26 al ONNX . La funcionalidad de exportación está integrada directamente en la biblioteca, lo que permite gestionar automáticamente el complejo recorrido del gráfico y la asignación de operadores.
El siguiente ejemplo muestra cómo exportar un modelo YOLO26 preentrenado al ONNX para su implementación:
from ultralytics import YOLO
# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)
print(f"Model exported successfully to: {path}")
Una vez exportado, este .onnx El archivo se puede utilizar en el
Plataforma Ultralytics para su gestión o se implementan directamente en dispositivos periféricos
utilizando ONNX , lo que hace que la visión artificial de alto rendimiento sea accesible en prácticamente cualquier entorno.