Descubra cómo ONNX mejora la portabilidad y la interoperabilidad de los modelos de IA, lo que permite un despliegue perfecto de los modelosYOLO Ultralytics en diversas plataformas.
Open Neural Network ExchangeONNX) es un estándar de código abierto diseñado para representar modelos de aprendizaje automático (ML) de forma que manera que garantice la portabilidad entre distintos marcos y hardware. Desarrollado originalmente por empresas como Microsoft y Facebook, ONNX sirve de "traductor universal" para la IA. Permite a los desarrolladores entrenar un modelo en un ecosistema, como PyTorchy desplegarlo sin problemas en otro, como TensorFlow o un motor de especializado. Esta interoperabilidad elimina la necesidad de reconstruir o volver a entrenar redes cuando se pasa de entornos de investigación a aplicaciones de producción, agilizando significativamente de despliegue de modelos.
En esencia, ONNX define un conjunto común de operadores -los componentes básicos del del aprendizaje profundo (DL) y los modelos de aprendizaje un formato de archivo estándar. Cuando un modelo se convierte a ONNX, su estructura computacional se asigna a un grafo computacional estático. estático. En este gráfico, los nodos representan operaciones matemáticas matemáticas (como convoluciones o funciones de activación), y las aristas representan el flujo de tensores de datos entre ellos.
Dado que esta representación gráfica está estandarizada, los fabricantes de hardware pueden construir proveedores de ejecución optimizados para
ONNX. Esto significa que un único .onnx puede acelerarse en hardware diverso, incluido un
CPU,
GPU (unidad de procesamiento gráfico)o
especializado
TPU Tensor Unidad de procesamiento deTensor )a menudo
utilizando el Tiempo de ejecución de ONNX.
Para los usuarios del ultralytics convertir un modelo entrenado al formato ONNX es un proceso sencillo.
sencillo. La biblioteca gestiona automáticamente la compleja asignación de capas al estándar ONNX . El siguiente fragmento de código
muestra cómo exportar un modelo YOLO11 modelo, preparándolo
para un despliegue más amplio.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")
La flexibilidad de ONNX lo convierte en un componente esencial de la infraestructura moderna de IA, en particular para tareas de visión computerizada (CV).
Comprender cómo interactúa ONNX con otras herramientas ayuda a seleccionar la estrategia de implantación adecuada.
.pt o
de Keras .h5 son excelentes para entrenar y ahorrar
pesos del modelo dentro de sus ecosistemas específicos.
Sin embargo, a menudo requieren la instalación del marco original para ejecutar el modelo. ONNX desacopla el modelo de
del marco de formación, lo que facilita
IA de borde cuando la instalación de una biblioteca de
es poco práctica debido a limitaciones de almacenamiento o memoria.