- 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ı
Model Çalıştırma
Bir ONNX modelinin MQL5'te çalıştırılması için şu 3 adımın tamamlanması gerekir:
- Modeli, OnnxCreate fonksiyonunu kullanarak bir *.onnx dosyasından veya OnnxCreateFromBuffer fonksiyonunu kullanarak bir diziden yükleyin.
- OnnxSetInputShape ve OnnxSetOutputShape fonksiyonlarını kullanarak girdi ve çıktı verilerinin şekillerini belirtin.
- Modeli, ilgili girdi ve çıktı parametrelerini ileterek OnnxRun fonksiyonunu kullanarak çalıştırın.
- Gerektiğinde OnnxRelease fonksiyonunu kullanarak modelin çalışmasını sonlandırabilirsiniz.
Bir ONNX modeli oluştururken, https://github.com/microsoft/onnxruntime/blob/rel-1.14.0/docs/OperatorKernels.md adresinde açıklanan mevcut sınırları ve kısıtlamaları göz önünde bulundurmalısınız.
Bu tür kısıtlamaların bazı örnekleri aşağıda gösterilmektedir:
İşlem |
Desteklenen veri türleri |
---|---|
ReduceSum |
tensor(double), tensor(float), tensor(int32), tensor(int64) |
Mul |
tensor(bfloat16), tensor(double), tensor(float), tensor(float16), tensor(int32), tensor(int64), tensor(uint32), tensor(uint64) |
Aşağıda, herkese açık ONNX.Price.Prediction projesinden bir MQL5 kodu örneği bulunmaktadır.
const long ExtOutputShape[] = {1,1}; // modelin çıktı şekli
|
Komut dosyası çalışması örneği:
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
|
MetaTrader 5 terminali, hesaplamalar için en uygun yürütücüyü seçti - ONNX Runtime Execution Provider. Bu örnekte, model CPU üzerinde yürütüldü.
Önceki 10 çubuğun değerlerine dayalı olarak yapılan başarılı Kapanış fiyatı öngörülerinin yüzdesini hesaplamak için komut dosyasını düzenleyelim.
#resource "Python/model.onnx" as uchar ExtModel[]// kaynak olarak model
|
Komut dosyasını çalıştıralım: öngörü doğruluğu yaklaşık %51'dir.
ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
|