public TicTacToeValueNetwork CreateTrainedNetwork() { var trainingData = TicTacToeValueLoader.LoadAllUniqueStates(Storage.Instance); var trainer = new TicTacToeValueNetworkTrainer(trainingData, 0); return(trainer.Train(30)); }
private void Training(TrainingSettings settings) { var trainingData = TicTacToeValueLoader.LoadAllUniqueStates(Storage.Instance, TicTacToeValueNetwork.DefaultInputTransform); var trainer = new TicTacToeValueNetworkTrainer(trainingData, 0) { HiddenLayerSizes = settings.Layers, LearingRate = settings.LearningRate, Momentum = settings.Momentum, }; TrainedNetwork = trainer.Train(settings.Epoches, new TrainingMonitor(this)); Invoke((MethodInvoker) delegate() { var accuracy = AccuracyMonitor.CalculateAccuracy(TrainedNetwork, trainingData); labelAccuracy.Text = $"{accuracy.CorrectPredictions}/{accuracy.TestingSetSize} ({accuracy.Value * 100.0:f2}%)"; buttonTrained.Enabled = true; }); }