private void metroButton16_Click(object sender, EventArgs e) { base.Hide(); TrainerBase ug = new TrainerBase(); ug.Show(); }
public ConvNetSharpNetwork() { network = new Net <double>(); network.AddLayer(new InputLayer(50, 52, 1)); network.AddLayer(new ConvLayer(3, 3, 8) { Stride = 1, Pad = 2 }); network.AddLayer(new ReluLayer()); network.AddLayer(new PoolLayer(3, 3) { Stride = 2 }); network.AddLayer(new ConvLayer(3, 3, 16) { Stride = 1, Pad = 2 }); network.AddLayer(new ReluLayer()); network.AddLayer(new PoolLayer(3, 3) { Stride = 2 }); network.AddLayer(new ConvLayer(3, 3, 32) { Stride = 1, Pad = 2 }); network.AddLayer(new FullyConnLayer(20)); network.AddLayer(new FullyConnLayer(50)); network.AddLayer(new FullyConnLayer(2)); network.AddLayer(new SoftmaxLayer(2)); trainer = GetTrainerForNetwork(network); }
public void LoadNetworkFromFile(string filePath) { var networkJSON = File.ReadAllText(filePath); network = SerializationExtensions.FromJson <double>(networkJSON); trainer = GetTrainerForNetwork(network); }
static void TrainEvaluatePredict(TrainerBase trainer, BostonHousingData newSample) { Console.WriteLine("*******************************"); Console.WriteLine($"{ trainer.Name }"); Console.WriteLine("*******************************"); trainer.Fit("..\\Data\\boston_housing.csv"); var modelMetrics = trainer.Evaluate(); Console.WriteLine($"Loss Function: {modelMetrics.LossFunction:0.##}{Environment.NewLine}" + $"Mean Absolute Error: {modelMetrics.MeanAbsoluteError:#.##}{Environment.NewLine}" + $"Mean Squared Error: {modelMetrics.MeanSquaredError:#.##}{Environment.NewLine}" + $"RSquared: {modelMetrics.RSquared:0.##}{Environment.NewLine}" + $"Root Mean Squared Error: {modelMetrics.RootMeanSquaredError:#.##}"); trainer.Save(); var predictor = new Predictor(); var prediction = predictor.Predict(newSample); Console.WriteLine("------------------------------"); Console.WriteLine($"Prediction: {prediction.MedianPrice:#.##}"); Console.WriteLine("------------------------------"); }
public TrainingScheme(INet net, TrainerBase trainer, EntryContainer container, string label) { this.container = container; this.label = label; this.net = net; this.trainer = trainer; int n = container.ClassCount; }
private static void RegressionUpdate(int n, double[] x, TrainerBase trainer, double[] y) { var netx = new Volume(1, 1, 1); var avloss = 0.0; for (var iters = 0; iters < 50; iters++) { for (var ix = 0; ix < n; ix++) { netx.Set(0, 0, 0, x[ix]); trainer.Train(netx, y[ix]); avloss += trainer.Loss; } } avloss /= n * 50.0; Console.WriteLine("Loss:" + avloss); }
private static void Classify2DUpdate(int n, List <double[]> data, TrainerBase trainer, List <int> labels) { var netx = new Volume(1, 1, 2); var avloss = 0.0; for (var iters = 0; iters < 50; iters++) { for (var ix = 0; ix < n; ix++) { netx.Set(0, 0, 0, data[ix][0]); netx.Set(0, 0, 1, data[ix][1]); trainer.Train(netx, labels[ix]); avloss += trainer.Loss; } } avloss /= n * 50.0; Console.WriteLine("Loss:" + avloss); }
private static void RegressionUpdate(int n, double[] x, TrainerBase <double> trainer, double[] y) { var netx = BuilderInstance.Volume.SameAs(new Shape(1, 1, 1, n)); var nety = BuilderInstance.Volume.SameAs(new Shape(1, 1, 1, n)); var avloss = 0.0; for (var ix = 0; ix < n; ix++) { netx.Set(0, 0, 0, ix, x[ix]); nety.Set(0, 0, 0, ix, y[ix]); } for (var iters = 0; iters < 50; iters++) { trainer.Train(netx, nety); avloss += trainer.Loss; } avloss /= n * 50.0; Console.WriteLine("Loss:" + avloss); }
private static void Classify2DUpdate(int n, List <double[]> data, TrainerBase <double> trainer, List <int> labels) { var avloss = 0.0; //var netx = new Volume(new double[2], new Shape(1, 1, 2, 1)); //for (var iters = 0; iters < 50; iters++) //{ // for (var ix = 0; ix < n; ix++) // { // var hotLabels = new Volume(new double[2], new Shape(1, 1, 2, 1)); // hotLabels.Set(0, 0, labels[ix], 0, 1.0); // netx.Set(0, 0, 0, data[ix][0]); // netx.Set(0, 0, 1, data[ix][1]); // trainer.Train(netx, hotLabels); // avloss += trainer.Loss; // } //} var netx = new Volume(new double[2 * n], new Shape(1, 1, 2, n)); var hotLabels = new Volume(new double[2 * n], new Shape(1, 1, 2, n)); for (var ix = 0; ix < n; ix++) { hotLabels.Set(0, 0, labels[ix], ix, 1.0); netx.Set(0, 0, 0, ix, data[ix][0]); netx.Set(0, 0, 1, ix, data[ix][1]); } for (var iters = 0; iters < 50; iters++) { trainer.Train(netx, hotLabels); avloss += trainer.Loss; } avloss /= 50.0; Console.WriteLine("Loss:" + avloss); }
private static void Classify2DUpdate(int n, List <double[]> data, TrainerBase <double> trainer, List <int> labels) { var avloss = 0.0; var netx = BuilderInstance.Volume.SameAs(new Shape(1, 1, 2, n)); var hotLabels = BuilderInstance.Volume.SameAs(new Shape(1, 1, 2, n)); for (var ix = 0; ix < n; ix++) { hotLabels.Set(0, 0, labels[ix], ix, 1.0); netx.Set(0, 0, 0, ix, data[ix][0]); netx.Set(0, 0, 1, ix, data[ix][1]); } for (var iters = 0; iters < 50; iters++) { trainer.Train(netx, hotLabels); avloss += trainer.Loss; } avloss /= 50.0; Console.WriteLine(k++ + " Loss:" + avloss); }
public ConsoleRunner(TrainerBase <T, TOptions, TReport, TSession> trainer, NeuralNet <T> network) { _trainer = trainer; _network = network; }