コード例 #1
0
        private void metroButton16_Click(object sender, EventArgs e)
        {
            base.Hide();
            TrainerBase ug = new TrainerBase();

            ug.Show();
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public void LoadNetworkFromFile(string filePath)
        {
            var networkJSON = File.ReadAllText(filePath);

            network = SerializationExtensions.FromJson <double>(networkJSON);
            trainer = GetTrainerForNetwork(network);
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: WoSea/NetBook
        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("------------------------------");
        }
コード例 #5
0
ファイル: TrainingScheme.cs プロジェクト: jung-kuei/Halite
        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;
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: radioman/ConvNetSharp
        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);
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: radioman/ConvNetSharp
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: qx-will/ConvNetSharp
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
 public ConsoleRunner(TrainerBase <T, TOptions, TReport, TSession> trainer, NeuralNet <T> network)
 {
     _trainer = trainer;
     _network = network;
 }