Modelos ONNX em aprendizado de máquina

O ONNX (Open Neural Network Exchange) é uma biblioteca aberta para a criação de redes neurais de aprendizagem profunda. Este projeto tem várias vantagens importantes:

  • Suporte a ONNX que é oferecido por grandes empresas, como Microsoft, Facebook, Amazon e outros parceiros.
  • O formato aberto permite a implementação de conversão de formatos entre diferentes ferramentas de aprendizado de máquina, ONNXMLTools da Microsoft oferece a possibilidade de converter modelos no formato ONNX.
  • MQL5 oferece autoconversão de dados de entrada e saída do modelo se o tipo de parâmetro passado não corresponder ao modelo.
  • Criação de modelos ONNX que pode ser realizada com muitas ferramentas de aprendizado de máquina, atualmente suportadas pelo Caffe2, Microsoft Cognitive Toolkit, MXNet, PyTorch e OpenCV; também há interfaces para muitas outras estruturas e bibliotecas populares.
  • A linguagem MQL5 possibilita implementar o modelo ONNX em uma estratégia de negociação e tirar o máximo proveito da plataforma MetaTrader 5 para trabalhar nos mercados financeiros de maneira eficiente.
  • Antes de executar o modelo na negociação real, você pode verificar o modelo em relação aos dados históricos no testador de estratégias sem o uso de ferramentas de terceiros.

As seguintes funções são disponibilizadas na MQL5 para trabalhar com o ONNX:

Função

Ação

OnnxCreate

Cria uma sessão ONNX com carregamento de modelo a partir de um arquivo *.onnx

OnnxCreateFromBuffer

Cria uma sessão ONNX com carregamento de modelo a partir de uma matriz de dados

OnnxRelease

Exclusão de sessão ONNX

OnnxRun

Execução do modelo ONNX

OnnxGetInputCount

Obtenção do número de parâmetros de entrada do modelo ONNX

OnnxGetOutputCount

Obtenção do número de parâmetros de saída do modelo ONNX

OnnxGetInputName

Obtenção do nome do parâmetro de entrada do modelo por índice

OnnxGetOutputName

Obtenção do nome do parâmetro de saída do modelo por índice

OnnxGetInputTypeInfo

Obtenção de uma descrição do tipo de parâmetro de entrada do modelo

OnnxGetOutputTypeInfo

Obtenção de uma descrição do tipo de parâmetro de saída do modelo

OnnxSetInputShape

Define a dimensionalidade dos dados de entrada do modelo por índice

OnnxSetOutputShape

Define a dimensionalidade dos dados de saída do modelo por índice