site_logo

ONNX (Open Neural Network Exchange)

24 сентября 2026|обновлено: 24 сентября 2026

ONNX (Open Neural Network Exchange) — открытый формат представления моделей машинного обучения, предназначенный для переноса обученных моделей между различными фреймворками, программными библиотеками и вычислительными платформами.

 

ONNX описывает структуру модели, ее операции и параметры в стандартизированном виде. Благодаря этому модель, обученную в одной программной среде, можно преобразовать в ONNX и использовать в другой среде, если она поддерживает соответствующие операции и формат.

Зачем нужен ONNX

Модели машинного обучения часто разрабатываются и обучаются с использованием определенного фреймворка. При этом среда, в которой модель будет использоваться после обучения, может отличаться.

 

Например:

обучение модели → экспорт в ONNX → запуск в другой среде выполнения

 

Такой подход позволяет отделить этап разработки и обучения модели от среды, в которой выполняется ее применение.

ONNX особенно полезен при переносе моделей на различные типы вычислительного оборудования и при построении систем, где одна модель должна использоваться в нескольких программных средах.

Что содержит ONNX-модель

ONNX-файл содержит описание вычислительной структуры модели и необходимые параметры.

В зависимости от модели в нем могут быть представлены:

  • вычислительные операции;
  • связи между операциями;
  • веса и другие параметры модели;
  • входы и выходы;
  • информация о типах данных;
  • служебные сведения о модели.

Таким образом, ONNX хранит не просто исходный код модели, а ее вычислительное представление, которое может быть интерпретировано совместимой средой выполнения.

ONNX и машинное обучение

ONNX используется преимущественно после этапа обучения модели.

Например, модель компьютерного зрения может быть разработана и обучена в одном фреймворке, после чего экспортирована в ONNX. Полученный файл затем используется для inference в совместимой среде.

При этом ONNX не выполняет inference самостоятельно. Для запуска модели необходим runtime или другая программная система, способная работать с ONNX-моделями.

ONNX Runtime

ONNX Runtime — среда выполнения, предназначенная для запуска моделей в формате ONNX.

Она позволяет выполнять inference на различных вычислительных устройствах и использовать аппаратные ускорители, если они поддерживаются конкретной конфигурацией.

В зависимости от платформы inference может выполняться на CPU, GPU или специализированном ускорителе.

ONNX в компьютерном зрении

ONNX широко применяется для переноса моделей компьютерного зрения из среды разработки в среду эксплуатации.

Например, обученная модель обнаружения объектов может быть экспортирована в ONNX и затем использоваться для обработки изображений и видеоданных в прикладном программном обеспечении.

Это особенно актуально для моделей, работающих на ограниченных вычислительных устройствах, где важны скорость inference, объем памяти и доступные аппаратные ускорители.

ONNX в БПЛА

В системах БПЛА ONNX может использоваться как промежуточный формат для переноса моделей компьютерного зрения на бортовое вычислительное оборудование.

Например, модель для анализа изображений может быть обучена на сервере, преобразована в формат ONNX, оптимизирована под целевую аппаратную платформу и затем использована для inference на бортовом компьютере.

 

Типовая схема может выглядеть следующим образом:

Датасет → обучение модели → экспорт в ONNX → оптимизация → бортовая платформа → inference → результат анализа

 

Такой подход позволяет отделить разработку модели от конкретного оборудования, на котором она будет работать.

Ограничения ONNX

ONNX не гарантирует, что любая модель будет без изменений работать в любой совместимой среде.

 

Причины могут включать:

  • отсутствие поддержки отдельных операций;
  • различия в типах данных;
  • особенности конкретного runtime;
  • различия в реализации операторов;
  • ограничения аппаратного ускорителя;
  • необходимость дополнительной оптимизации модели.

 

Поэтому после конвертации модели обычно проверяют корректность результатов и производительность inference на целевой платформе.

ONNX и другие форматы моделей

ONNX следует отличать от форматов, предназначенных для конкретных фреймворков или аппаратных платформ.

Главное назначение ONNX — обеспечить переносимое представление модели, тогда как специализированные форматы могут быть оптимизированы под конкретный runtime или тип оборудования.

 

В реальном проекте модель может пройти несколько этапов преобразования:

исходный формат → ONNX → оптимизированный формат целевой платформы → inference

Кратко

ONNX — открытый формат представления моделей машинного обучения, который используется для переноса обученных моделей между различными фреймворками, средами выполнения и вычислительными платформами. В системах компьютерного зрения и БПЛА ONNX может использоваться для подготовки моделей к inference на бортовом или другом целевом вычислительном оборудовании.