Example #1
0
        /// <summary>
        /// Afficher le contenu d'un réseau
        /// </summary>
        public static void AfficherReseau(Reseau reseau)
        {
            Console.WriteLine();

            // couche d'entrée traitée à part
            Couche couche = reseau.Couches[0];

            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Couche entrée ({0} neurones)", couche.Neurones.Length);
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Sortie:");

            Console.ForegroundColor = ConsoleColor.Yellow;
            foreach (Neurone neurone in couche.Neurones)
            {
                Console.WriteLine(neurone.Sortie.ToString("+0.0000;-0.0000"));
                Console.WriteLine();
            }
            Console.ResetColor();

            for (int i = 1; i < reseau.Couches.Length; i++)
            {
                couche = reseau.Couches[i];
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Couche {0} ({1} neurones)", i, couche.Neurones.Length);
                Console.ResetColor();
                Console.Write("Poids, ");
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write("biais, ");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("somme, ");
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("sortie, ");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("Gradiant:");

                Console.ResetColor();
                foreach (Neurone neurone in couche.Neurones)
                {
                    for (int n = 0; n < neurone.Poids.Length; n++)
                    {
                        Console.Write("{0} ", neurone.Poids[n].ToString("+0.0000;-0.0000"));
                    }
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Write("{0} ", neurone.Biais.ToString("+0.0000;-0.0000"));
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.Write("{0} ", neurone.Somme.ToString("+0.0000;-0.0000"));
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.Write("{0} ", neurone.Sortie.ToString("+0.0000;-0.0000"));
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine(neurone.Erreur.ToString("+0.0000;-0.0000"));

                    Console.ResetColor();
                    Console.WriteLine();
                }
            }
        }
Example #2
0
        /// <summary>
        /// Afficher le contenu d'un réseau
        /// </summary>
        public static void AfficherReseau(Reseau reseau)
        {
            Console.WriteLine();

            // couche d'entrée traitée à part
            Couche couche = reseau.Couches[0];
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Couche entrée ({0} neurones)", couche.Neurones.Length);
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Sortie:");

            Console.ForegroundColor = ConsoleColor.Yellow;
            foreach (Neurone neurone in couche.Neurones)
            {
                Console.WriteLine(neurone.Sortie.ToString("+0.0000;-0.0000"));
                Console.WriteLine();
            }
            Console.ResetColor();

            for (int i = 1; i < reseau.Couches.Length; i++)
            {
                couche = reseau.Couches[i];
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Couche {0} ({1} neurones)", i , couche.Neurones.Length);
                Console.ResetColor();
                Console.Write("Poids, ");
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write("biais, ");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("somme, ");
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("sortie, ");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine("Gradiant:");

                Console.ResetColor();
                foreach (Neurone neurone in couche.Neurones)
                {
                    for (int n = 0; n < neurone.Poids.Length; n++)
                    {
                        Console.Write("{0} ", neurone.Poids[n].ToString("+0.0000;-0.0000"));
                    }
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.Write("{0} ", neurone.Biais.ToString("+0.0000;-0.0000"));
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.Write("{0} ", neurone.Somme.ToString("+0.0000;-0.0000"));
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.Write("{0} ", neurone.Sortie.ToString("+0.0000;-0.0000"));
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine(neurone.Erreur.ToString("+0.0000;-0.0000"));

                    Console.ResetColor();
                    Console.WriteLine();
                }
            }
        }
Example #3
0
        /// <summary>
        /// Règle une valeur aléatoire comprise entre -1 et +1 pour les poids des couches du réseau autres que la couche d'entrée
        /// </summary>
        /// <param name="reseau"></param>
        public static void PoidsAleatoires(Reseau reseau, bool bias)
        {
            Random rnd = new Random();

            // on laisse les valeurs par défaut (1) des poids de la couche d'entrée
            // d'ou le démarrage à 1
            for (int c = 1; c < reseau.Couches.Length; c++)
            {
                Couche couche = reseau.Couches[c];
                foreach (Neurone neurone in couche.Neurones)
                {
                    for (int i = 0; i < neurone.Poids.Length; i++)
                    {
                        neurone.Poids[i] = 2 * rnd.NextDouble() - 1;
                        if (bias)
                        {
                            neurone.Biais = 2 * rnd.NextDouble() - 1;
                        }
                    }
                }
            }
        }
Example #4
0
        /// <summary>
        /// Règle une valeur aléatoire comprise entre -1 et +1 pour les poids des couches du réseau autres que la couche d'entrée
        /// </summary>
        /// <param name="reseau"></param>
        public static void PoidsAleatoires(Reseau reseau, bool bias)
        {
            Random rnd = new Random();

            // on laisse les valeurs par défaut (1) des poids de la couche d'entrée
            // d'ou le démarrage à 1
            for (int c = 1; c < reseau.Couches.Length; c++)
            {
                Couche couche = reseau.Couches[c];
                foreach (Neurone neurone in couche.Neurones)
                {
                    for (int i = 0; i < neurone.Poids.Length; i++)
                    {
                        neurone.Poids[i] = 2 * rnd.NextDouble() - 1;
                        if (bias)
                        {
                            neurone.Biais = 2 * rnd.NextDouble() - 1;
                        }
                    }
                }
            }
        }