示例#1
0
        /**********************************************************************/

        public void TestsErreur(Graphics g, Bitmap bmp)
        {
            int    x, z;
            double z2;

            // image blanche
            for (x = 0; x < bmp.Width; x++)
            {
                for (z = 0; z < bmp.Height; z++)
                {
                    bmp.SetPixel(x, z, Color.White);
                }
            }

            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 < tabValeurs.GetLength(0); x++)
            {
                // 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(tabValeurs[x, 0] / 500); // Une seule valeur ici pour ce vecteur
                vect.Add(tabValeurs[x, 1] / 500);
                lvecteursentrees.Add(vect);
            }

            lsortiesobtenues = reseau.ResultatsEnSortie(lvecteursentrees);

            // Affichage

            List <double> listIntensite         = new List <double>();
            List <double> listIntensiteCorrigee = new List <double>();

            for (x = 0; x < tabValeurs.GetLength(0); x++)
            {
                z2 = lsortiesobtenues[x];
                listIntensite.Add(z2);
            }
            double min = listIntensite[0];
            double max = listIntensite[0];

            // On recherche le minimum et le maximum
            foreach (double element in listIntensite)
            {
                if (element < min)
                {
                    min = element;
                }
                else
                {
                    max = element;
                }
            }

            for (int m = 0; m < tabValeurs.GetLength(0); m++)
            {
                int    abs       = Convert.ToInt32(0.4 * tabValeurs[m, 0]); // a corriger en fonction du max de datasetregression !
                int    ord       = Convert.ToInt32(0.4 * tabValeurs[m, 1]);
                double intensite = listIntensite[m] * 255;                  //Remap( listIntensite[m], min, max, 0, 255); // il faut maper
                int    i         = Convert.ToInt32(Math.Floor(intensite));
                bmp.SetPixel(abs, ord, Color.FromArgb(i, i, i));
            }
        }