MQL5参考ONNX模型数据结构 

数据结构

以下数据结构用于ONNX模型的操作:

OnnxTypeInfo #

该结构描述了ONNX模型的输入输出参数的类型

struct OnnxTypeInfo
 {
  ENUM_ONNX_TYPE        type;          // 参数类型
  OnnxTensorTypeInfo    tensor;        // 张量描述
  OnnxMapTypeInfo       map;           // 映射描述
  OnnxSequenceTypeInfo  sequence;      // 序列描述
 };

只有张量(ONNX_TYPE_TENSOR)可以作为输入使用。在这种情况下,只有OnnxTypeInfo::tensor字段被填充值,而其他字段(映射和序列)没有定义。

三种OnnxTypeInfo类型(ONNX_TYPE_TENSOR、ONNX_TYPE_MAP或ONNX_TYPE_SEQUENCE)中只有一种可以作为输入使用。相对应的子结构(OnnxTypeInfo::tensor、OnnxTypeInfo::map或OnnxTypeInfo::sequence)根据类型来填充。

 

OnnxTensorTypeInfo

该结构描述了ONNX模型的输入输出参数中的张量

struct OnnxTensorTypeInfo
 {
  const ENUM_ONNX_DATA_TYPE  data_type;      // 张量中的数据类型
  const long                 dimensions[];   // 张量中的元素数
 };

OnnxMapTypeInfo #

该结构描述了ONNX模型的输出参数中获得的映射

struct OnnxMapTypeInfo
 {
  const ENUM_ONNX_DATA_TYPE  key_type;      //密钥类型
  const OnnxTypeInfo&        value_type;    // 值类型
 };

OnnxSequenceTypeInfo #

该结构描述了ONNX模型的输出参数中获得的序列

struct OnnxSequenceTypeInfo
 {
  const OnnxTypeInfo&        value_type;     // 序列中的数据类型
 };

 

 

ENUM_ONNX_TYPE #

ENUM_ONNX_TYPE枚举描述了模型参数的类型

ID

描述

ONNX_TYPE_UNKNOWN

未知

ONNX_TYPE_TENSOR

Tensor

ONNX_TYPE_SEQUENCE

Sequence

ONNX_TYPE_MAP

Map

ONNX_TYPE_OPAQUE

Abstract (opaque)

ONNX_TYPE_SPARSETENSOR

Sparse tensor

ENUM_ONNX_DATA_TYPE #

ENUM_ONNX_DATA_TYPE枚举描述了所用数据的类型

ID

描述

ONNX_DATA_TYPE_UNDEFINED

未定义

ONNX_DATA_TYPE_FLOAT

浮点型

ONNX_DATA_TYPE_INT8

8位整型

ONNX_DATA_TYPE_UINT16

16位无符号整型

ONNX_DATA_TYPE_INT16

16位整型

ONNX_DATA_TYPE_INT32

32位整型

ONNX_DATA_TYPE_INT64

64位整型

ONNX_DATA_TYPE_STRING

字符串

ONNX_DATA_TYPE_BOOL

布尔型

ONNX_DATA_TYPE_FLOAT16

16位浮点型

ONNX_DATA_TYPE_DOUBLE

双精度

ONNX_DATA_TYPE_UINT32

32位无符号整型

ONNX_DATA_TYPE_UINT64

64位无符号整型

ONNX_DATA_TYPE_COMPLEX64

64位复数

ONNX_DATA_TYPE_COMPLEX128

128位复数

ONNX_DATA_TYPE_BFLOAT16

16位bfloat(大脑浮点)

ENUM_ONNX_FLAGS #

ENUM_ONNX_FLAGS枚举描述了模型运行模式

ID

描述

ONNX_DEBUG_LOGS

输出调试日志

ONNX_NO_CONVERSION

禁用自动转换,按原样使用用户数据

ONNX_COMMON_FOLDER  

加载Common\Files文件夹的模型文件;该值等于FILE_COMMON标识