ONNX Modellerini Çalıştırırken Girdi ve Çıktı Değerlerini Otomatik Dönüştürme

MQL5'teki mevcut ONNX sürümü, girdi/çıktı değerleri olarak yalnızca tensörleri desteklemektedir. Tensörler, aşağıdaki veri türlerindeki elemanlara sahip veri dizileridir:

ONNX türü

Karşılık gelen MQL5 türü

ONNX_DATA_TYPE_BOOL

bool

ONNX_DATA_TYPE_FLOAT

float

ONNX_DATA_TYPE_UINT8

uchar

ONNX_DATA_TYPE_INT8

char

ONNX_DATA_TYPE_UINT16

ushort

ONNX_DATA_TYPE_INT16

short

ONNX_DATA_TYPE_INT32

int

ONNX_DATA_TYPE_INT64

long

ONNX_DATA_TYPE_FLOAT16

ONNX_DATA_TYPE_DOUBLE

double

ONNX_DATA_TYPE_UINT32

uint

ONNX_DATA_TYPE_UINT64

ulong

ONNX_DATA_TYPE_COMPLEX64

ONNX_DATA_TYPE_COMPLEX128

complex

ONNX_DATA_TYPE_BFLOAT16

ONNX_DATA_TYPE_STRING  

 

ONNX modellerine girdi/çıktı değerleri olarak yalnızca diziler, vektörler veya matrisler (bunlara Veriler olarak değineceğiz) beslenebilir.

İletilen parametre türü, ONNX modelinin parametre türüyle eşleşmiyorsa ve OnnxRun, ONNX_NO_CONVERSION bayrağı belirtilmeden çağrıldıysa, otomatik veri dönüştürme uygulanacaktır. Otomatik dönüştürme, ONNX modeli çalıştırılmadan önce, kullanıcı Verilerinin ilgili dönüştürmeyle ONNX tensörlerine kopyalanacağı anlamına gelir.

ONNX modeli otomatik dönüştürme olmadan çalıştırıldığında, model herhangi bir ek kopyalama olmaksızın Veriler kullanılarak hesaplanacaktır.

ÖNEMLİ! Otomatik dönüştürme aşırılığı (truncate) kontrol etmez, bu nedenle ONNX modeline girdi olarak kullanılan verileri ve türlerini dikkatle izlemelisiniz.

Otomatik dönüştürme, aşağıdaki ONNX türlerini desteklemektedir:

  • 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

Desteklenmeyen türler:

  • ONNX_DATA_TYPE_BFLOAT16
  • ONNX_DATA_TYPE_STRING

 

Tensör türlerine göre otomatik dönüştürme kuralları

MQL5 türü, model tarafından desteklenen türler listesinde yer almıyorsa, ONNX modelinin çalıştırılması ERR_ONNX_NOT_SUPPORTED hatası (hata kodu 5802) geri döndürecektir.

Not: Otomatik dönüştürme sırasında, color türü uint olarak, datetime türü de long olarak işlenir.

 

Girdi değerlerini otomatik dönüştürme

ONNX türü (tensör elemanı türü)

Otomatik dönüştürme tarafından desteklenen MQL5 türü

ONNX_DATA_TYPE_BOOL

bool, char, uchar, short, ushort, int, color, uint, datetime, long, float, double, complex

 

Dönüştürme sırasında Veri elemanları, 0'a karşı basit bir karşılaştırmayla kontrol edilir

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'a bakın

ONNX_DATA_TYPE_INT8

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_UINT16

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_INT16

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_INT32

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_INT64

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_DOUBLE

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_UINT32

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_UINT64

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_COMPLEX64

complex

ONNX_DATA_TYPE_COMPLEX128

complex

 

Çıktı değerlerini otomatik dönüştürme

ONNX türü (tensör elemanı türü)

Otomatik dönüştürme tarafından desteklenen MQL5 türü

ONNX_DATA_TYPE_BOOL

bool, char, uchar, short, ushort, int, color, uint, datetime, long, float, double, complex

 

Tensör elemanı sıfırsa, Veri elemanı 0 olarak ayarlanır; aksi takdirde, değer 1'dir

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'a bakın

ONNX_DATA_TYPE_INT8

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_UINT16

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_INT16

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_INT32

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_INT64

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_DOUBLE

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_UINT32

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_UINT64

ONNX_DATA_TYPE_FLOAT'a bakın

ONNX_DATA_TYPE_COMPLEX64

complex

ONNX_DATA_TYPE_COMPLEX128

complex

 

Ayrıca bakınız

Tür Dönüştürme