머신러닝에서 ONNX 모델

ONNX (Open Neural Network Exchange)는 머신러닝 모델을 위한 오픈 소스 형식입니다. 이 프로젝트에는 다음과 같은 몇 가지 주요 이점이 있습니다.

  • ONNX는 Microsoft, Facebook, Amazon 및 기타 파트너와 같은 거대 기업의 지원을 받습니다.
  • ONNX의 개방성은 서로 다른 기계 학습 툴킷 간에 형식 변환을 가능하게 합니다. 가령 Microsoft의ONNXML도구 모델을 ONNX 형식으로 변환하도록 할 수 있습니다.
  • MQL5는 전달된 매개변수 유형이 모델과 일치하지 않는 경우 모델의 입력 및 출력을 위한 자동 데이터 유형 변환을 제공합니다. .
  • ONNX 모델은 다양한 머신러닝 도구를 사용하여 만들 수 있습니다. 현재 Caffe2, Microsoft Cognitive Toolkit, MXNet, PyTorch 및 OpenCV에서 지원됩니다. 다른 인기 있는 프레임워크 및 라이브러리에 대한 인터페이스도 사용할 수 있습니다.
  • MQL5 언어를 사용하면 거래 전략에서 ONNX 모델을 구현할 수 있습니다.  금융 시장에서 효율적인 운영을 위해 MetaTrader 5 플랫폼의 모든 기능과 함께 사용하십시오.
  • 실시간 거래를 위해 모델을 조정하기 전에  타사 도구를 사용하지 않고 전략 테스터에서 과거 데이터에 대한 모델의 동작을 테스트할 수 있습니다.

MQL5는 ONNX 작업을 위해 다음과 같은 함수를 제공합니다.

함수

동작

OnnxCreate

*.onnx 파일에서 모델을 로드하여 ONNX 세션 생성

OnnxCreateFromBuffer

ONNX 세션 생성, 데이터 배열에서 모델 로드

OnnxRelease

ONNX 세션 종료

OnnxRun

ONNX 모델 실행

OnnxGetInputCount

ONNX 모델의 입력 수 가져오기

OnnxGetOutputCount

ONNX 모델의 출력 수 가져오기

OnnxGetInputName

인덱스로 모델의 입력 이름 가져오기

OnnxGetOutputName

인덱스로 모델의 출력 이름 가져오기

OnnxGetInputTypeInfo

모델에서 입력 유형에 대한 설명 가져오기

OnnxGetOutputTypeInfo

모델에서 출력 유형에 대한 설명 가져오기

OnnxSetInputShape

모델의 입력 데이터의 형태를 인덱스로 설정

OnnxSetOutputShape

모델의 출력 데이터의 형태를 인덱스로 설정