- ONNXサポート
- フォーマット変換
- データ型の自動変換
- モデルの作成
- モデルの実行
- ストラテジーテスターでの実行
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- データ構造体
ONNXモデルの実行時に入力値と出力値を自動変換します
MQL5の現在のONNXバージョンは、入出力値のテンソルのみをサポートしています。テンソルは、次のデータ型の要素を含むデータ配列です。
ONNX型 |
対応するMQL5型 |
---|---|
ONNX_DATA_TYPE_BOOL |
|
ONNX_DATA_TYPE_FLOAT |
|
ONNX_DATA_TYPE_UINT8 |
|
ONNX_DATA_TYPE_INT8 |
|
ONNX_DATA_TYPE_UINT16 |
|
ONNX_DATA_TYPE_INT16 |
|
ONNX_DATA_TYPE_INT32 |
|
ONNX_DATA_TYPE_INT64 |
|
ONNX_DATA_TYPE_FLOAT16 |
— |
ONNX_DATA_TYPE_DOUBLE |
|
ONNX_DATA_TYPE_UINT32 |
|
ONNX_DATA_TYPE_UINT64 |
|
ONNX_DATA_TYPE_COMPLEX64 |
— |
ONNX_DATA_TYPE_COMPLEX128 |
|
ONNX_DATA_TYPE_BFLOAT16 |
— |
ONNX_DATA_TYPE_STRING |
— |
配列、ベクトル、行列(これらをデータと呼びます)のみをONNXモデルに入出力値として供給できます。
パラメータ型がONNXモデルのパラメータ型と一致せず、OnnxRunが ONNX_NO_CONVERSIONフラグなしで呼び出された場合を指定すると、自動データ変換が適用されます。自動変換は、ONNXモデルを実行する前に、ユーザデータが関連する変換を使用してONNXテンソルにコピーされることを意味します。
ONNXモデルが自動変換なしで実行される場合、モデルは追加のコピーなしでデータを使用して計算されます。
重要:自動変換はオーバーフロー(切り捨て)を制御しないため、ONNXモデルに入力されるデータとデータ型を注意深く監視する必要があります。
自動変換は次のONNX型をサポートしています。
- ONNX_DATA_TYPE_BOOL
- ONNX_DATA_TYPE_FLOAT
- ONNX_DATA_TYPE_UINT8
- ONNX_DATA_TYPE_INT8
- ONNX_DATA_TYPE_UINT16
- ONNX_DATA_TYPE_INT16
- ONNX_DATA_TYPE_INT32
- ONNX_DATA_TYPE_INT64
- ONNX_DATA_TYPE_FLOAT16
- ONNX_DATA_TYPE_DOUBLE
- ONNX_DATA_TYPE_UINT32
- ONNX_DATA_TYPE_UINT64
- ONNX_DATA_TYPE_COMPLEX64
- ONNX_DATA_TYPE_COMPLEX128
次はサポ—トされていません。
- ONNX_DATA_TYPE_BFLOAT16
- ONNX_DATA_TYPE_STRING
テンソル型別の自動変換ルール
MQL5型がモデルでサポートされる型のリストに含まれていない場合、ONNXモデルを実行するとERR_ONNX_NOT_SUPPORTEDエラー(エラーコード5802)が返されます。
注:自動変換中、color型はuintとして処理され、datetimeはlongとして処理されます。
入力値の自動変換
ONNX型(テンソル項目型) |
自動変換でサポートされるMQL5型 |
---|---|
ONNX_DATA_TYPE_BOOL |
bool、char、uchar、short、ushort、int、color、uint、datetime、long、folat、double、complex
変換中、データ要素は0との単純な比較によって確認されます |
ONNX_DATA_TYPE_FLOAT16 |
float、double |
ONNX_DATA_TYPE_FLOAT |
char、uchar、short、ushort、int、color、uint、datetime、long、ulong、float、double |
ONNX_DATA_TYPE_UINT8 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT8 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_UINT16 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT16 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT32 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT64 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_DOUBLE |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_UINT32 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_UINT64 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_COMPLEX64 |
complex |
ONNX_DATA_TYPE_COMPLEX128 |
complex |
出力値の自動変換
ONNX型(テンソル項目型) |
自動変換でサポートされるMQL5型 |
---|---|
ONNX_DATA_TYPE_BOOL |
bool、char、uchar、short、ushort、int、color、uint、datetime、long、folat、double、complex
テンソル要素がゼロの場合、データ要素は0に設定されます。 それ以外の場合、値は1になります |
ONNX_DATA_TYPE_FLOAT16 |
float、double |
ONNX_DATA_TYPE_FLOAT |
char、uchar、short、ushort、int、color、uint、datetime、long、ulong、float、double |
ONNX_DATA_TYPE_UINT8 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT8 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_UINT16 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT16 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT32 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_INT64 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_DOUBLE |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_UINT32 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_UINT64 |
ONNX_DATA_TYPE_FLOAT参照 |
ONNX_DATA_TYPE_COMPLEX64 |
complex |
ONNX_DATA_TYPE_COMPLEX128 |
complex |
参照