/**********************************************************************/ public void Tests(Graphics g, Bitmap bmp) { int x, z, zdesire; double x2, z2; for (x = 0; x < bmp.Width; x++) { for (z = 0; z < bmp.Height; z++) { bmp.SetPixel(x, z, Color.Black); } } List <List <double> > lvecteursentrees = new List <List <double> >(); List <double> lsortiesdesirees = new List <double>(); List <double> lsortiesobtenues; // EN général, on reprend ici les données récupérées du fichier base de données // mais pour illustrer le fonctionnement, on se propose ici de tester 200 valeurs // de x (dimension 1 pour les entrées ici) entre 0 et 1, ramenées entre 0 et 200 // idem pour la sortie, pour permettre l'affichage dans une image. for (x = 0; x < 200; x++) { x2 = x / 200.0; // Initialisation des activations ai correspondant aux entrées xi // Le premier neurone est une constante égale à 1 List <double> vect = new List <double>(); vect.Add(x2); // Une seule valeur ici pour ce vecteur lvecteursentrees.Add(vect); lsortiesdesirees.Add(fonctionmodele(x2)); } lsortiesobtenues = reseau.ResultatsEnSortie(lvecteursentrees); // Affichage for (x = 0; x < 200; x++) { z2 = lsortiesobtenues[x]; // z2 valeur attendu entre 0 et 1 ; conversion pour z qui est retenu pour l'affichage z = (int)(z2 * 200); zdesire = (int)(lsortiesdesirees[x] * 200); bmp.SetPixel(x, bmp.Height - z - 1, Color.Yellow); bmp.SetPixel(x, bmp.Height - zdesire - 1, Color.White); } }
private Bitmap ZonesApprentissage(Bitmap bmp) { List <List <double> > entrees = new List <List <double> >(); List <double> sortie = new List <double>(); //On parcours les pixels de la bitmap et on les traites for (int x = 0; x < bmp.Width; x++) { for (int y = 0; y < bmp.Height; y++) { List <double> vect = new List <double>(); vect.Add(x / 800.0); vect.Add(y / 800.0); entrees.Add(vect); } } sortie = reseau.ResultatsEnSortie(entrees); double erreur = 0.0; int indice = 0; for (int x = 0; x < bmp.Width; x++) { for (int y = 0; y < bmp.Height; y++) { if (sortie[indice] < 0.5) { bmp.SetPixel(x, y, Color.Blue); erreur += Math.Abs(0.2 - sortie[indice]); } else { bmp.SetPixel(x, y, Color.Yellow); erreur += Math.Abs(0.8 - sortie[indice]); } indice++; } } erreur /= Convert.ToDouble(indice); Erreur.Text = erreur.ToString(); return(bmp); }