- ONNX Desteği
- Model Dönüştürme
- Otomatik Veri Türü Dönüştürme
- Model Oluşturma
- Model Çalıştırma
- Strateji Sınayıcıda Çalıştırma
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- Veri Yapıları
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 |
|
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 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