تشخیص اعداد دست‌نویس با استفاده از مدل ONNX در MetaTrader 5
بازدید 222

تشخیص اعداد دست‌نویس با استفاده از مدل ONNX در MetaTrader 5

خرید اکانت تریدینگ ویو

پروژه‌ای برای استفاده از یک مدل ONNX جهت تشخیص اعداد دست‌نویس – اکسپرت برای MetaTrader5
یک اکسپرت که قادر به تشخیص اعداد دست‌نویس است

پایگاه داده MNIST شامل 60,000 تصویر برای آموزش و 10,000 تصویر برای تست است. این تصاویر با “بازترکیب” مجموعه اصلی NIST که شامل نمونه‌های سیاه و سفید 20×20 پیکسل بود، ایجاد شده‌اند. این نمونه‌ها از اداره آمار ایالات متحده به دست آمده و با نمونه‌هایی که از دانش‌آموزان دبیرستان‌های آمریکایی جمع‌آوری شده بودند، تکمیل شدند. این نمونه‌ها به اندازه 28×28 پیکسل نرمال‌سازی و با استفاده از تکنیک ضد الیاسینگ (anti-aliasing) پردازش شدند که منجر به ایجاد سطوح خاکستری در تصویر شد.

تشخیص اعداد دست‌نویس با استفاده از مدل ONNX در MetaTrader 5

مدل آموزش‌دیده تشخیص اعداد دست‌نویس با نام mnist.onnx از گیت‌هاب و از ModelZoo(opset8) دانلود شده است. کسانی که علاقه دارند، می‌توانند سایر مدل‌ها را نیز امتحان کنند، به جز مدل‌هایی که از opset 1 استفاده می‌کنند؛ زیرا این نسخه دیگر توسط نسخه‌های جدید ONNX پشتیبانی نمی‌شود. جالب است که بردار خروجی این مدل با تابع فعال‌سازی Softmax پردازش نشده است، چیزی که در مدل‌های طبقه‌بندی معمول است. البته این موضوع مشکل بزرگی نیست، چرا که می‌توانیم به راحتی آن را خودمان پیاده‌سازی کنیم.

سفارش اکسپرت و ربات تریدر

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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);
}
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); }
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);
  }

دانلود اکسپرت تشخیص اعداد دست‌نویس با استفاده از مدل ONNX در MetaTrader 5


برای تست این اکسپرت، می‌توانید در یک شبکه ویژه با استفاده از ماوس و نگه داشتن دکمه چپ ماوس اعداد دست‌نویس خود را رسم کنید. برای تشخیص عدد رسم شده، کافی است دکمه CLASSIFY را فشار دهید.
اگر احتمال به دست آمده برای عدد تشخیص داده شده کمتر از 0.8 باشد، بردار احتمالات برای هر کلاس به لاگ چاپ می‌شود. به عنوان مثال، می‌توانید یک ورودی خالی (بدون رسم هیچ عددی) را تست کنید تا نتایج را مشاهده کنید.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
[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.11471312493085861
[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.11471312493085861
[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.11471312493085861

نکته جالب این است که دقت تشخیص برای عدد 9 (۹) به طور محسوسی پایین‌تر است. اعدادی که به سمت چپ کج شده‌اند، با دقت بیشتری تشخیص داده می‌شوند.

ثبت نام در بروکر ایکس چف

توضیحات اضافی:

این اکسپرت در MetaTrader5 اجرا می‌شود و با استفاده از مدل‌های ONNX برای تشخیص اعداد دست‌نویس طراحی شده است. مدل ONNX به شما اجازه می‌دهد از مدل‌های از پیش آموزش‌دیده استفاده کرده و آن‌ها را در محیط‌های مختلف از جمله MetaTrader5 پیاده‌سازی کنید. این اکسپرت به کاربران اجازه می‌دهد تا اعداد را به صورت دست‌نویس وارد کرده و آن‌ها را تشخیص دهند.
مهم‌ترین نکته در پیاده‌سازی این اکسپرت، استفاده از مدل‌های ONNX است که با قابلیت‌های نرم‌افزار MetaTrader5 ترکیب شده است تا کاربران بتوانند به راحتی از تکنیک‌های پیشرفته یادگیری ماشین در محیط معاملاتی استفاده کنند.

شیوه کامپایل گرفتن فایل های اکسپرت و ایجاد فایل اجرایی برای اجرای اکسپرت در متاتریدر

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

1

پشتیبانی واتساپ هوش فعال