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(); } }
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; } } }