ONNX модели в машинном обучении

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

  • Поддержка ONNX осуществляется крупными компаниями, такими  как Microsoft, Facebook, Amazon и другими партнерами.
  • Открытый формат позволяет производить преобразование форматов между различными средствами машинного обучения, ONNXMLTools от Microsoft позволяет конвертировать модели в формат ONNX.
  • MQL5 обеспечивает автоматическую конвертацию входных и выходных данных модели, если тип переданного параметра не соответствует модели.
  • Создавать ONNX модели можно с помощью множества инструментов машинного обучения, в настоящее время они поддерживаются в Caffe2, Microsoft Cognitive Toolkit, MXNet, PyTorch и OpenCV,  также есть интерфейсы для многих других популярных фреймворков и библиотек.
  • Язык MQL5 позволяет внедрить ONNX модель в торговую стратегию и использовать все преимущества платформы MetaTrader 5 для эффективной работы на финансовых рынках.
  • Перед запуском модели в реальную торговлю вы можете проверить модель на исторических данных в тестере стратегий без использования сторонних инструментов.

Для работы с ONNX в MQL5 предусмотрены следующие функции:

Функция

Действие

OnnxCreate

Создает сессию ONNX c загрузкой модели из *.onnx файла

OnnxCreateFromBuffer

Создает сессию ONNX c загрузкой модели из массива данных

OnnxRelease

Удаление сессии ONNX

OnnxRun

Запуск модели ONNX на исполнение

OnnxGetInputCount

Получение количества входных параметров модели ONNX

OnnxGetOutputCount

Получение количества выходных параметров модели ONNX

OnnxGetInputName

Получение имени входного параметра модели по индексу

OnnxGetOutputName

Получение имени выходного параметра модели по индексу

OnnxGetInputTypeInfo

Получение описания типа входного параметра у модели

OnnxGetOutputTypeInfo

Получение описания типа выходного параметра у модели

OnnxSetInputShape

Устанавливает размерность входных данных модели по индексу

OnnxSetOutputShape

Устанавливает размерность выходных данных модели по индексу