Fan sayfamıza katılın
Öyleyse bir link gönderin -
başkalarının da faydalanmasını sağlayın
El yazısı sayıları tanımak için bir ONNX modeli kullanma örneği - MetaTrader 5 için Uzman Danışman
- Görüntülemeler:
- 580
- Derecelendirme:
- Yayınlandı:
-
Bu koda dayalı bir robota veya göstergeye mi ihtiyacınız var? Freelance üzerinden sipariş edin Freelance'e git
El yazısı rakamları tanıyabilen bir Uzman Danışman
MNIST veritabanı eğitim için 60.000, test için ise 10.000 görüntü içermektedir. Bu görüntüler, 20x20 piksellik siyah-beyaz örneklerden oluşan orijinal NIST kümesinin "yeniden karıştırılması" ile oluşturulmuştur (bu örnekler ABD Nüfus Sayım Bürosu'ndan elde edilmiş ve Amerikalı lise öğrencilerinden alınan test örnekleri ile desteklenmiştir). Örnekler 28x28 piksel boyutuna normalize edilmiş ve gri tonlama seviyeleri eklenerek kenar yumuşatması yapılmıştır.
Eğitilmiş el yazısı rakam tanıma modeli mnist.onnx, Github'daki Model Zoo’dan (opset 8) indirilmiştir. İlgilenenler, en son ONNX çalışma zamanı tarafından artık desteklenmeyen opset 1'li modeller hariç, diğer modelleri indirip deneyebilirler. Şaşırtıcı bir şekilde, çıktı vektörü, sınıflandırma modellerinde yaygın olduğu gibi Softmax aktivasyon fonksiyonu ile işlenmemiştir. Ancak bu bir sorun değildir; bunu kendimiz de kolayca uygulayabiliriz.
int PredictNumber(void) { static matrixf image(28,28); static vectorf result(10); PrepareMatrix(image); if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result)) { Print("OnnxRun error ",GetLastError()); return(-1); } result.Activation(result,AF_SOFTMAX); int predict=int(result.ArgMax()); if(result[predict]<0.8) Print(result); Print("value ",predict," predicted with probability ",result[predict]); return(predict); }
Fareyi kullanarak (farenin sol tuşuna basılı tutarak) özel ızgarada rakamlar çizin. Çizilen rakamı tanımak için CLASSIFY düğmesine basın.

Tanınan rakam için elde edilen olasılık 0,8'den azsa, her sınıf için olasılıkları içeren sonuç vektörü günlüğe yazdırılır. Örneğin, doldurulmamış boş bir giriş alanını sınıflandırmayı deneyin.
[0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267] value 5 predicted with probability 0.11471312493085861Bazı nedenlerden dolayı, tanıma doğruluğu dokuz (9) sayısı için belirgin şekilde daha düşüktür. Sola yatık rakamlar daha doğru tanınmaktadır.
MetaQuotes Ltd tarafından Rusçadan çevrilmiştir.
Orijinal kod: https://www.mql5.com/ru/code/47225
Six Soldiers
Six bulls or six bear continuous candles
Body Wick Comparison
Checks if either upper or lower Wick range of a candlestick is greater than Body range of a candlestick and plot a wingding
Yatırımcılar için MQL5 Programlama - Kitaptan kaynak kodları. Bölüm 1
Kitabın ilk bölümünde MQL5 dili ve geliştirme ortamı tanıtılmaktadır. MQL5 dilinde MQL4'e (MetaTrader 4 dili) kıyasla sunulan yeni özelliklerden biri, onu C++'a benzer kılan nesne yönelimli programlama (Object-Oriented Programming, OOP) desteğidir.
Yatırımcılar için MQL5 Programlama - Kitaptan kaynak kodları. Bölüm 2
“MQL5 programlamanın temelleri” başlıklı 2. bölüm, bu programlama dilinin temel kavramlarına bir giriş niteliğindedir. Kitabın bu bölümü veri türleri, tanımlayıcılar, değişkenler, ifadeler ve operatörlere ayrılmıştır. Program mantığını oluşturmak için farklı talimatları nasıl kombine edeceğinizi öğreneceksiniz.