Изучите формат Open Neural Network Exchange (ONNX). Узнайте, как экспортировать Ultralytics в ONNX быстрого кроссплатформенного развертывания и оптимизации оборудования.
ONNX Open Neural Network Exchange) — это формат с открытым исходным кодом, предназначенный для представления моделей машинного обучения и обеспечивающий совместимость между различными фреймворками и инструментами искусственного интеллекта. Он служит универсальным переводчиком для глубокого обучения, позволяя разработчикам создавать модели в одном фреймворке, таком как PyTorch, TensorFlow или Scikit-learn, и беспрепятственно развертывать их в другой среде, оптимизированной для вывода. Определяя общий набор операторов и стандартный формат файлов, ONNX необходимость в сложных пользовательских скриптах преобразования, которые исторически требовались для переноса моделей из исследовательской среды в производственную. Такая гибкость имеет решающее значение для современных рабочих процессов искусственного интеллекта, где обучение может происходить на мощных облачных графических процессорах, а развертывание — на разнообразном оборудовании, таком как пограничные устройства, мобильные телефоны или веб-браузеры.
В быстро развивающейся сфере искусственного интеллекта исследователи и инженеры часто используют разные инструменты для разных этапов жизненного цикла разработки. Специалист по обработке данных может предпочесть гибкость PyTorch экспериментов и обучения, в то время как инженер-технолог нуждается в оптимизированной производительности TensorRT или OpenVINO развертывания. Без стандартного формата обмена перенос модели между этими экосистемами является сложным и подверженным ошибкам.
ONNX этот разрыв, предоставляя общее определение графа вычислений. Когда модель экспортируется в ONNX, она сериализуется в формат, который фиксирует структуру сети (слои, соединения) и параметры (веса, смещения) независимо от используемой платформы. Это позволяет механизмам вывода, специально настроенным для аппаратного ускорения, таким как ONNX , эффективно выполнять модель на нескольких платформах, включая Linux, Windows, macOS, Android и iOS.
Принятие формата Open Neural Network Exchange дает несколько стратегических преимуществ для проектов в области искусственного интеллекта:
.onnx файл может быть ускорен на NVIDIA , Intel или
мобильных нейронных процессорах (NPU) с помощью таких инструментов, как
OpenVINO или CoreML.
Универсальность ONNX его незаменимым инструментом в различных отраслях. Вот два конкретных примера его применения:
Рассмотрим мобильное приложение, предназначенное для мониторинга состояния сельскохозяйственных культур в режиме реального времени. Модель может быть обучена на мощном облачном сервере с использованием большого набора данных с изображениями растений. Однако приложение должно работать в автономном режиме на смартфоне фермера. Экспортируя обученную модель в ONNX, разработчики могут интегрировать ее в мобильное приложение с помощью ONNX Mobile. Это позволяет процессору телефона выполнять локальное обнаружение объектов, мгновенно идентифицируя вредителей или болезни без необходимости подключения к Интернету.
В электронной коммерции функция «виртуальной примерки» может использовать оценку позы для наложения одежды на изображение с веб-камеры пользователя. Обучение этой модели может происходить в Python, но целью развертывания является веб-браузер. С помощью ONNX модель может быть преобразована и запущена непосредственно в браузере пользователя через ONNX Web. Это позволяет использовать возможности устройства клиента (WebGL или WebAssembly) для выполнения задач компьютерного зрения, обеспечивая плавную работу и сохранение конфиденциальности, поскольку видеоданные никогда не покидают компьютер пользователя.
Полезно отличать ONNX других форматов моделей и инструментов:
Ultralytics упрощает процесс преобразования современных моделей, таких как YOLO26, в ONNX . Функция экспорта встроена непосредственно в библиотеку и автоматически обрабатывает сложный обход графа и сопоставление операторов.
Следующий пример демонстрирует, как экспортировать предварительно обученную модель YOLO26 в ONNX для развертывания:
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}")
После экспорта это .onnx файл может быть использован в
Платформа Ultralytics для управления или непосредственно на периферийные
устройства с помощью ONNX , что делает высокопроизводительное компьютерное зрение доступным практически в любой среде.