Unisciti alla nostra fan page
Esempio di utilizzo di un modello ONNX per riconoscere i numeri scritti a mano - sistema esperto per MetaTrader 5
- Visualizzazioni:
- 600
- Valutazioni:
- Pubblicato:
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
Un Expert Advisor in grado di riconoscere le cifre scritte a mano
Il database MNIST è composto da 60.000 immagini per l'addestramento e 10.000 immagini per i test. Queste immagini sono state create "rimescolando" un set originale NIST di campioni in bianco e nero di 20x20 pixel, che a loro volta sono stati ottenuti dall'US Census Bureau e integrati con i campioni di test prelevati da studenti delle scuole superiori americane. I campioni sono stati normalizzati alla dimensione di 28x28 pixel e sottoposti ad anti-alias, che ha introdotto i livelli di scala di grigio.
Il modello addestrato di riconoscimento delle cifre scritte a mano mnist.onnx è stato scaricato da Github da Model Zoo (opset 8). Chi è interessato può scaricare e provare altri modelli, esclusi i modelli con opset 1, che non sono più supportati dall'ultimo runtime ONNX. Sorprendentemente, il vettore di output non è stato elaborato con la funzione di attivazione Softmax, comune nei modelli di classificazione. Tuttavia, questo non è un problema; possiamo facilmente implementarlo da soli.
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); }
Disegna le cifre in una griglia speciale utilizzando il mouse, tenendo premuto il pulsante sinistro. Per riconoscere la cifra disegnata, premere il pulsante CLASSIFY.

Se la probabilità ottenuta per la cifra riconosciuta è inferiore a 0,8, il vettore risultante con le probabilità per ciascuna classe viene stampato nel log. Ad esempio, prova a classificare un campo di input vuoto non compilato.
[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.11471312493085861Per qualche motivo, la precisione del riconoscimento è notevolmente inferiore per il numero nove (9). Le cifre inclinate a sinistra vengono riconosciute in modo più accurato.
Tradotto dal russo da MetaQuotes Ltd.
Codice originale 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
MQL5 Programming for Traders – Source Codes from the Book. Parte 1
Il primo capitolo del libro introduce il linguaggio MQL5 e l'ambiente di sviluppo. Una delle nuove funzionalità introdotte nel linguaggio MQL5 rispetto a MQL4 (linguaggio MetaTrader 4) è il supporto per la programmazione orientata agli oggetti (OOP), che lo rende simile a C++.
MQL5 Programming for Traders – Source Codes from the Book. Parte 2
La seconda parte "Fondamenti di programmazione MQL5" è un'introduzione ai concetti chiave di questo linguaggio di programmazione. Questa parte del libro è dedicata ai tipi di dati, agli identificatori, alle variabili, alle espressioni e agli operatori. Imparerete come combinare diverse istruzioni per formare la logica del programma.