Узнайте, как ONNX улучшает переносимость и совместимость моделей ИИ, обеспечивая беспрепятственное развертывание моделей Ultralytics YOLO на различных платформах.
Open Neural Network ExchangeONNX) - это стандарт с открытым исходным кодом, предназначенный для представления моделей машинного обучения (ML) таким образом, чтобы обеспечивающим переносимость между различными фреймворками и аппаратными средствами. Изначально он был разработан такими компаниями, как Microsoft и Facebook, ONNX служит "универсальным переводчиком" для ИИ. Он позволяет разработчикам обучать модель в одной экосистеме, например PyTorchи без проблем развернуть ее в другой, например TensorFlow или специализированный механизм вывода. Такая совместимость устраняет необходимость перестраивать или переучивать сети при переходе от исследовательских сред к производственным приложениям, значительно упрощая значительно упрощает процесс развертывания моделей.
В своей основе ONNX определяет общий набор операторов - строительных блоков для моделей глубокого обучения (DL) и машинного обучения, а также стандартный формат файлов. Когда модель преобразуется в ONNX, ее вычислительная структура отображается на статический вычислительный граф. В этом графе узлы представляют математические операции (например, свертки или функции активации), а ребра представляют собой поток тензоров данных между ними.
Поскольку это представление графа стандартизировано, производители оборудования могут создавать оптимизированные провайдеры выполнения для
ONNX. Это означает, что единый .onnx файл может быть ускорен на различном оборудовании, включая
CPU,
GPU (графический процессор)или
специализированный
TPU Tensor блокTensor обработки)часто
используя высокопроизводительные Время выполнения ONNX.
Для пользователей ultralytics пакет, преобразование обученной модели в формат ONNX является простым
процесс. Библиотека автоматически справляется со сложным сопоставлением слоев со стандартом ONNX . Следующий фрагмент кода
фрагмент кода демонстрирует, как экспортировать модель YOLO11 модель, подготавливая
для более широкого внедрения.
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")
Гибкость ONNX делает его важнейшим компонентом современной инфраструктуры искусственного интеллекта, особенно для задач компьютерного зрения (КВ).
Понимание того, как ONNX взаимодействует с другими инструментами, помогает выбрать правильную стратегию развертывания.
.pt или
Keras's .h5 отлично подходят для обучения и сохранения
веса модели в своих конкретных экосистемах.
Однако для запуска модели часто требуется установка оригинального фреймворка. ONNX отделяет модель от
от обучающего фреймворка, что упрощает выполнение
краевой ИИ развертывания, когда установка полной учебной библиотеки
нецелесообразно из-за нехватки памяти или хранения данных.