Rejoignez notre page de fans
Exemple d'utilisation d'un modèle ONNX pour reconnaître des chiffres manuscrits - expert pour MetaTrader 5
- Vues:
- 768
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Un Expert Advisor capable de reconnaître des chiffres manuscrits
La base de données MNIST se compose de 60 000 images pour la formation et de 10 000 images pour le test. Ces images ont été créées en "remixant" un ensemble original d'échantillons noir et blanc de 20x20 pixels du NIST, eux-mêmes obtenus auprès du US Census Bureau et complétés par des échantillons de test prélevés sur des lycéens américains. Les échantillons ont été normalisés à une taille de 28x28 pixels et anti-aliasés (sans crénelage), ce qui a permis d'introduire des niveaux de gris.
Le modèle de reconnaissance de chiffres manuscrits mnist.onnx a été téléchargé de Github à partir de Model Zoo (opset 8). Les personnes intéressées peuvent télécharger et essayer d'autres modèles, à l'exception des modèles avec opset 1, qui n'est plus supporté par le dernier runtime ONNX. Il est surprenant de constater que le vecteur de sortie n'a pas été traité avec la fonction d'activation Softmax, comme c'est souvent le cas dans les modèles de classification. Ce n'est toutefois pas un problème ; nous pouvons facilement le mettre en œuvre nous-mêmes.
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); }
Dessinez les chiffres dans une grille spéciale à l'aide de la souris, en maintenant le bouton gauche de la souris enfoncé. Pour reconnaître le chiffre dessiné, appuyez sur la touche CLASSIFY.

Si la probabilité obtenue pour le chiffre reconnu est inférieure à 0,8, le vecteur résultant avec les probabilités pour chaque classe est imprimé dans le journal. Par exemple, essayez de classer un champ de saisie vide et non rempli.
[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.11471312493085861Pour une raison ou une autre, la précision de la reconnaissance est nettement inférieure pour le chiffre neuf (9). Les chiffres inclinés à gauche sont reconnus avec plus de précision.
Traduit du russe par MetaQuotes Ltd.
Code original : 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
Programmation MQL5 pour les Traders - Codes Source du livre. Partie 1
Le premier chapitre du livre présente le langage et l'environnement de développement MQL5. L'une des nouveautés introduites dans le langage MQL5 par rapport à MQL4 (langage MetaTrader 4) est la prise en charge de la Programmation Orientée Objet (POO), ce qui le rend similaire au C++.
Programmation MQL5 pour les Traders - Codes Source du livre. Partie 2
La partie 2 "Fondamentaux de la programmation MQL5" est une introduction aux concepts clés de ce langage de programmation. Cette partie du livre est consacrée aux types de données, aux identificateurs, aux variables, aux expressions et aux opérateurs. Vous apprendrez à combiner différentes instructions pour former la logique du programme.