static void M() { // Get Data var images = IDXFileParser <byte>("C:\\MNist\\train-images.idx3-ubyte"); var labels = IDXFileParser <byte>("C:\\MNist\\train-labels.idx1-ubyte"); var testImages = IDXFileParser <byte>("C:\\MNist\\t10k-images.idx3-ubyte"); var testLabels = IDXFileParser <byte>("C:\\MNist\\t10k-labels.idx1-ubyte"); // Process List <List <double> > inputs = new List <List <double> >(); List <List <double> > outputs = new List <List <double> >(); List <List <double> > testInputs = new List <List <double> >(); List <List <double> > testOutputs = new List <List <double> >(); foreach (var pair in images.Zip(labels)) { DigitImage _ = new DigitImage(pair); inputs.Add(_.GetPixelInput()); outputs.Add(_.GetLabelOutput()); } foreach (var pair in testImages.Zip(testLabels)) { DigitImage _ = new DigitImage(pair); testInputs.Add(_.GetPixelInput()); testOutputs.Add(_.GetLabelOutput()); } NeuralNetwork nn = new NeuralNetwork(new List <int>() { 28 * 28, 200, 50, 10 }); NNTrainer.Train(nn, 0.01, inputs, outputs, testInputs, testOutputs); }
// Update is called once per frame void Update() { if (hoverSelector == null) { hoverSelector = GameObject.Instantiate(hoverSelectorPrefab); } hoverSelector.transform.position = GetTilePosUnderMouse(); if (Input.GetMouseButtonDown(0)) { Vector3Int tilePos = GetTilePosUnderMouse(); RegisterClickOnTile(new Vector2Int(tilePos.x, tilePos.y)); } if (Input.GetKeyDown(KeyCode.T)) { NNTrainer.StartTraining(10, 20); } if (Input.GetKeyDown(KeyCode.Tab)) { NNTrainer.DoShowMoves = !NNTrainer.DoShowMoves; } }