Пример #1
0
        public static void Jeff()
        {
            Random      rnd  = new Random();
            NeuronalNet Jeff = new NeuronalNet(0, 209, 200, 100, 5);

            Jeff.StandartInitialisierung();
            Tetris.MapAktualisieren(true);
            bool nochmal = true;

            while (nochmal)
            {
                Tetris.MapAktualisieren(true);
                while (Tetris.leben)
                {
                    Jeff.InputGeben(Tetris.GetV());
                    Jeff.AllesBerechnen();
                    double[] b = Tetris.UserBewegung(Console.ReadKey().KeyChar);
                    Jeff.DeepLearning(b);
                }
                Tetris.AllesReset();
                Console.Clear();
                Console.Write("Nochmal");
                string text = Console.ReadLine();

                if (text == "nein" || text == "n")
                {
                    nochmal = false;
                }
            }
            Console.Clear();

            while (true)
            {
                Console.Clear();
                Tetris.MapAktualisieren(true);


                while (Tetris.leben && !Tetris.kiTutNichts && Tetris.sinnloseBewegung < 350)
                {
                    Console.SetCursorPosition(0, 0);
                    ArrayAusgeben(Jeff.GetOutput());
                    Jeff.InputGeben(Tetris.GetV());
                    Jeff.AllesBerechnen();


                    Tetris.BewegungShow(Jeff.GetOutput(), 0.5);
                }


                Tetris.AllesReset();
            }
        }
    private void Train()
    {
        nn = new NeuronalNet(3, 2, 2);
        nn.NetworkInit();
        nn.learningRate  = 0.5f;
        predictText.text = "TRAINING";
        for (int j = 0; j < 10000; ++j)
        {
            for (int i = 0; i < input.Count; ++i)
            {
                nn.TrainNetwork(input[i], output[i]);
            }
        }

        predictText.text = "DONE";
    }
Пример #3
0
        public static void SimplesSpielKI()
        {
            NeuronalNet Queckeline = new NeuronalNet(2, 100, 4);

            Queckeline.StandartInitialisierung();
        }
Пример #4
0
            public static void Run(int durchlaufe, int ausgebenPro)
            {
                double      Fehler   = 0;
                NeuronalNet Chantall = new NeuronalNet(0, 784, 20, 20, 10);

                Chantall.StatischeInitialisierung(true);
                Chantall.Etha = 4;

                FileStream ifsLabels = new FileStream(@"C:\Users\Gregor\memBrain\train-labels.idx1-ubyte", FileMode.Open); // test labels
                FileStream ifsImages = new FileStream(@"C:\Users\Gregor\memBrain\train-images.idx3-ubyte", FileMode.Open); // test images

                BinaryReader brLabels = new BinaryReader(ifsLabels);
                BinaryReader brImages = new BinaryReader(ifsImages);

                int magic1    = brImages.ReadInt32(); // discard
                int numImages = brImages.ReadInt32();
                int numRows   = brImages.ReadInt32();
                int numCols   = brImages.ReadInt32();

                int magic2    = brLabels.ReadInt32();
                int numLabels = brLabels.ReadInt32();

                byte[][] pixels = new byte[28][];
                for (int i = 0; i < pixels.Length; ++i)
                {
                    pixels[i] = new byte[28];
                }

                for (int i = 1; i < durchlaufe; ++i)
                {
                    if (i % 60000 == 0)
                    {
                        ifsImages.Close();
                        brImages.Close();
                        ifsLabels.Close();
                        brLabels.Close();
                        ifsLabels = new FileStream(@"C:\Users\Gregor\memBrain\train-labels.idx1-ubyte", FileMode.Open); // test labels
                        ifsImages = new FileStream(@"C:\Users\Gregor\memBrain\train-images.idx3-ubyte", FileMode.Open); // test images

                        brLabels = new BinaryReader(ifsLabels);
                        brImages = new BinaryReader(ifsImages);

                        magic1    = brImages.ReadInt32(); // discard
                        numImages = brImages.ReadInt32();
                        numRows   = brImages.ReadInt32();
                        numCols   = brImages.ReadInt32();

                        magic2    = brLabels.ReadInt32();
                        numLabels = brLabels.ReadInt32();

                        pixels = new byte[28][];
                        for (int j = 0; j < pixels.Length; ++j)
                        {
                            pixels[j] = new byte[28];
                        }
                    }

                    for (int i1 = 0; i1 < 28; ++i1)
                    {
                        for (int j = 0; j < 28; ++j)
                        {
                            byte b = brImages.ReadByte();
                            pixels[i1][j] = b;
                        }
                    }

                    byte lbl = brLabels.ReadByte();


                    double[] erwrteterOutput = new double[10];

                    erwrteterOutput[lbl] = 1;

                    Chantall.InputGeben(ConvertD(pixels));
                    Chantall.AllesBerechnen();
                    Chantall.DeepLearning(erwrteterOutput);

                    Fehler += Chantall.GetFehlerDif(erwrteterOutput);

                    if (i % ausgebenPro == 0)
                    {
                        Fehler /= ausgebenPro;
                        DigitImage dImage = new DigitImage(pixels, lbl);
                        Console.WriteLine(dImage.ToString());
                        ZweiArrayAusgeben(erwrteterOutput, Chantall.GetOutput());
                        Console.WriteLine("Treffer Quote: {0}", 100 - (Fehler * 10));
                        Console.WriteLine(Chantall.ToString());
                        Chantall.Etha = Fehler * 2;

                        Fehler = 0;
                    }
                }
            }