Laman utama Perdagangan Sistem Siaran

Panduan Menggunakan Model ONNX untuk Kenali Nombor Tangan dalam MetaTrader 5

Lampiran
47225.zip (25.17 KB, Muat turun 2 kali)

EA yang Mampu Mengenali Nombor Tangan

Database MNIST mengandungi 60,000 imej untuk latihan dan 10,000 imej untuk ujian. Imej-imej ini dihasilkan dengan mencampurkan set asal NIST yang terdiri daripada sampel hitam-putih bersaiz 20x20 piksel, yang diambil daripada Biro Bancian AS dan ditambah dengan sampel ujian daripada pelajar sekolah menengah Amerika. Sampel-sampel ini telah dinormalisasi kepada saiz 28x28 piksel dan diproses dengan anti-aliasing, yang memperkenalkan tahap kelabu.

Model pengenalan nombor tangan yang telah dilatih, mnist.onnx, boleh dimuat turun dari Github menerusi Model Zoo (opset 8). Bagi mereka yang berminat, anda boleh memuat turun dan mencuba model-model lain, kecuali untuk model dengan opset 1 yang tidak lagi disokong oleh runtime ONNX terkini. Menariknya, vektor output tidak diproses dengan fungsi pengaktifan Softmax, seperti yang biasa dilakukan dalam model klasifikasi. Namun, ini bukanlah masalah kerana kita boleh melaksanakannya dengan mudah sendiri.

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);
  }


 Anda boleh melukis nombor dalam grid khas menggunakan tetikus dengan menekan butang kiri tetikus. Untuk mengenali nombor yang dilukis, tekan butang CLASSIFY.




Jika kebarangkalian untuk nombor yang dikenali adalah kurang dari 0.8, vektor hasil dengan kebarangkalian untuk setiap kelas akan dicetak ke log. Sebagai contoh, cuba klasifikasikan medan input yang kosong.

[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
Untuk beberapa sebab, ketepatan pengenalan adalah lebih rendah untuk nombor sembilan (9). Nombor yang dilukis ke kiri lebih dikenali dengan tepat.


Siaran berkaitan

Komen (0)