Esempio n. 1
0
        public double CalcRMSE(PragmaLearn.Learner.BackpropNeuralNetwork net, Dataset data, int count)
        {
            var error = 0.0;
            var c     = 0;

            for (int i = 0; i < count; ++i)
            {
                var x  = Tools.rnd.Index(data.input.Count);
                var p  = net.Predict(data.input[x]);
                var y  = data.output[x];
                var se = 0.0;
                for (int j = 0; j < p.Length; ++j)
                {
                    if (y[j] != -1)
                    {
                        se += (p[j] - y[j]) * (p[j] - y[j]);
                        c++;
                    }
                }
                error += se;
            }

            error /= c;

            return(Math.Sqrt(error));
        }
Esempio n. 2
0
        private void bLoadData_Click(object sender, EventArgs e)
        {
            resultData = KeypointData.LoadResultData();
            var data = KeypointData.LoadTrainData();

            data.RandomSplit(0.9f, out trainData, out testData);


            var hidden = trainData.GetInputDimension();

            initNet();
            clonedNet = network.Clone();
        }
Esempio n. 3
0
        //async void test(int iter)
        //{
        //    var idx = pos % resultData.input.Count;

        //    var net = network.Clone();
        //    net.learningRate = network.learningRate;
        //    await Task.Run(() =>
        //    {
        //        try
        //        {
        //            var rmseTrain = CalcRMSE(net, trainData, 250) * KeypointData.origImgSize;
        //            var rmseTest = CalcRMSE(net, testData, 250) * KeypointData.origImgSize;

        //            zedTrain.Add(iter, rmseTrain);
        //            zedTrain.Sort((a, b) => a.X.CompareTo(b.X));
        //            zedTest.Add(iter, rmseTest);
        //            zedTest.Sort((a, b) => a.X.CompareTo(b.X));
        //            Console.WriteLine();
        //            Console.WriteLine("iteration: " + idx);
        //            Console.WriteLine("learning rate: " + net.learningRate);
        //            Console.WriteLine("train: " + rmseTrain);
        //            Console.WriteLine("test: " + rmseTest);
        //            Console.WriteLine();
        //        }
        //        catch (Exception e)
        //        {
        //            Console.WriteLine();
        //            Console.WriteLine(e);
        //            Console.WriteLine();
        //        }
        //    });



        //    // net.Save("network_" + iter + ".dat");
        //    clonedNet = net;


        //    zedGraphControl1.AxisChange();

        //    pos++;
        //    Refresh();
        //}

        void test(int iter)
        {
            var idx = pos % resultData.input.Count;

            var net = network.Clone();

            net.learningRate = network.learningRate;

            try
            {
                var rmseTrain = CalcRMSE(net, trainData, 250) * KeypointData.origImgSize;
                var rmseTest  = CalcRMSE(net, testData, 250) * KeypointData.origImgSize;

                zedTrain.Add(iter, rmseTrain);
                zedTrain.Sort((a, b) => a.X.CompareTo(b.X));
                zedTest.Add(iter, rmseTest);
                zedTest.Sort((a, b) => a.X.CompareTo(b.X));
                Console.WriteLine();
                Console.WriteLine("iteration: " + idx);
                Console.WriteLine("learning rate: " + net.learningRate);
                Console.WriteLine("train: " + rmseTrain);
                Console.WriteLine("test: " + rmseTest);
                Console.WriteLine();
            }
            catch (Exception e)
            {
                Console.WriteLine();
                Console.WriteLine(e);
                Console.WriteLine();
            }



            // net.Save("network_" + iter + ".dat");
            clonedNet = net;


            zedGraphControl1.AxisChange();

            pos++;
            Refresh();
        }
Esempio n. 4
0
 private void bLoad_Click(object sender, EventArgs e)
 {
     network.Open("network.dat");
     clonedNet = network.Clone();
 }
Esempio n. 5
0
 private void bLoad_Click(object sender, EventArgs e)
 {
     network.Open("network.dat");
     clonedNet = network.Clone();
 }
Esempio n. 6
0
        private void bLoadData_Click(object sender, EventArgs e)
        {
            resultData = KeypointData.LoadResultData();
            var data = KeypointData.LoadTrainData();
            data.RandomSplit(0.9f, out trainData, out testData);

            var hidden = trainData.GetInputDimension();
            initNet();
            clonedNet = network.Clone();
        }
Esempio n. 7
0
        //async void test(int iter)
        //{
        //    var idx = pos % resultData.input.Count;
        //    var net = network.Clone();
        //    net.learningRate = network.learningRate;
        //    await Task.Run(() =>
        //    {
        //        try
        //        {
        //            var rmseTrain = CalcRMSE(net, trainData, 250) * KeypointData.origImgSize;
        //            var rmseTest = CalcRMSE(net, testData, 250) * KeypointData.origImgSize;
        //            zedTrain.Add(iter, rmseTrain);
        //            zedTrain.Sort((a, b) => a.X.CompareTo(b.X));
        //            zedTest.Add(iter, rmseTest);
        //            zedTest.Sort((a, b) => a.X.CompareTo(b.X));
        //            Console.WriteLine();
        //            Console.WriteLine("iteration: " + idx);
        //            Console.WriteLine("learning rate: " + net.learningRate);
        //            Console.WriteLine("train: " + rmseTrain);
        //            Console.WriteLine("test: " + rmseTest);
        //            Console.WriteLine();
        //        }
        //        catch (Exception e)
        //        {
        //            Console.WriteLine();
        //            Console.WriteLine(e);
        //            Console.WriteLine();
        //        }
        //    });
        //    // net.Save("network_" + iter + ".dat");
        //    clonedNet = net;
        //    zedGraphControl1.AxisChange();
        //    pos++;
        //    Refresh();
        //}
        void test(int iter)
        {
            var idx = pos % resultData.input.Count;

            var net = network.Clone();
            net.learningRate = network.learningRate;

            try
            {
                var rmseTrain = CalcRMSE(net, trainData, 250) * KeypointData.origImgSize;
                var rmseTest = CalcRMSE(net, testData, 250) * KeypointData.origImgSize;

                zedTrain.Add(iter, rmseTrain);
                zedTrain.Sort((a, b) => a.X.CompareTo(b.X));
                zedTest.Add(iter, rmseTest);
                zedTest.Sort((a, b) => a.X.CompareTo(b.X));
                Console.WriteLine();
                Console.WriteLine("iteration: " + idx);
                Console.WriteLine("learning rate: " + net.learningRate);
                Console.WriteLine("train: " + rmseTrain);
                Console.WriteLine("test: " + rmseTest);
                Console.WriteLine();
            }
            catch (Exception e)
            {
                Console.WriteLine();
                Console.WriteLine(e);
                Console.WriteLine();
            }

            // net.Save("network_" + iter + ".dat");
            clonedNet = net;

            zedGraphControl1.AxisChange();

            pos++;
            Refresh();
        }