Ejemplo n.º 1
0
        /**********************************************************************/
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }