Exemple #1
0
        static void Main(string[] args)
        {
            List <List <double> > inputs  = ReadNetIO(@"input4.txt");
            List <List <double> > outputs = ReadNetIO(@"output3.txt");

            Shuffle(inputs);
            Shuffle(outputs);

            List <List <double> > testin  = new List <List <double> >();
            List <List <double> > testout = new List <List <double> >();

            for (int i = 1; i < 11; ++i)
            {
                testin.Add(inputs[inputs.Count - i]);
                testout.Add(outputs[outputs.Count - i]);
                inputs.RemoveAt(inputs.Count - i);
                outputs.RemoveAt(outputs.Count - i);
            }

            const bool     newNet = true;
            FeedForwardNet net;

            if (newNet)
            {
                const double LearningRate = 0.1;
                const int    epochs       = 10000;
                const int    batchSize    = 1;
                const int    type         = 1;
                net = new FeedForwardNet();
                if (type == 1)
                {
                    net.AddSigmoidLayer(10, 4);
                    net.AddSigmoidLayer(5, 10);
                    net.AddSigmoidLayer(3, 5);
                }
                else if (type == 2)
                {
                    net.AddTangentialLayer(10, 4);
                    net.AddTangentialLayer(5, 10);
                    net.AddTangentialLayer(3, 5);
                }
                else if (type == 3)
                {
                    net.AddGaussianLayer(10, 4);
                    net.AddGaussianLayer(5, 10);
                    net.AddGaussianLayer(3, 5);
                }
                else if (type == 4)
                {
                    net.AddGaussianLayer(10, 4);
                    net.AddSigmoidLayer(5, 10);
                    net.AddTangentialLayer(3, 5);
                }

                net.Train(inputs, outputs, LearningRate, epochs, batchSize);
            }
            else
            {
                net = ANNSerializer.ReadNet(@"first_net/1.ann");
            }

            for (int i = 0; i < outputs.Count; ++i)
            {
                List <double> result = net.Calculate(inputs[i]);
                Console.ForegroundColor = ConsoleColor.White;
                for (int j = 0; j < inputs[i].Count; ++j)
                {
                    Console.Write(inputs[i][j] + " ");
                }
                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write(i + " " + ConvertToIris(result) + " ");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(ConvertToIris(outputs[i]) + "\n");
            }
            Console.WriteLine("Tests:");
            for (int i = 0; i < testin.Count; ++i)
            {
                List <double> result = net.Calculate(testin[i]);
                Console.ForegroundColor = ConsoleColor.White;
                for (int j = 0; j < testin[i].Count; ++j)
                {
                    Console.Write(testin[i][j] + " ");
                }
                Console.WriteLine();
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write(i + " " + ConvertToIris(result) + " ");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine(ConvertToIris(testout[i]) + "\n");
            }
        }