Exemplo n.º 1
0
        static void Main(string[] args)
        {
            ado ado = new ado();
            ado.ConnectToDB();
            //ado.SQLToFile("select * from courses","C:/Users/Brian/Documents/datasets/courses.txt");

            NetData train = new NetData();
            NetData test = new NetData();
            NNet nnet = new NNet();
            string sqltrain;
            string sqltest;

            sqltrain = SQLNetData.TrainHeader() + SQLNetData.MainInput() + SQLNetData.TrainWhere();
            sqltest = SQLNetData.TestHeader() + SQLNetData.MainInput() + SQLNetData.TestWhere();

            train.SQLtoTrainData(sqltrain,ado.Conn);
            test.SQLtoTestData(sqltest, ado.Conn);

            //Utils.DataTableToFile(train.DataTable,"E:/Users/Brian/datasets/encogtrain.txt");
            ////Utils.DataTableToFile(test.DataTable, "E:/Users/Brian/datasets/encogtest.txt");

            //train.DataTable = Utils.DataTableFromFile("E:/Users/Brian/datasets/encogtrain.txt");

            //Utils.DataTableToFile(train.DataTable, "E:/Users/Brian/datasets/encogtrain2.txt");

            //train.DataTable = Utils.DataTableFromFile("E:/Users/Brian/datasets/encogtrain2.txt");

            //Utils.DataTableToFile(train.DataTable, "E:/Users/Brian/datasets/encogtrain3.txt");

            while (true)
            {

                for (int nodes = 16; nodes < 42; nodes = nodes + 2)
                {
                    nnet.Create(train.ColCount - 2, nodes);
                    nnet.Train(train, test);
                }
            }
            Console.Write("\n\nPress ENTER to continue.");
            Console.ReadLine();
        }
Exemplo n.º 2
0
        public void Train(NetData traindata, NetData testdata)
        {
            bool stop;
            double sr;
            double bestsr;
            string now;
            int totalepoch;
            int epoch;
            long timeId;
            string netfile;
            timeId = DateTime.Now.Millisecond + DateTime.Now.Year + DateTime.Now.Minute + DateTime.Now.Hour + DateTime.Now.Day;
            //// create training data
            IMLDataSet trainingSet = new BasicMLDataSet(traindata.Data, traindata.Targets);

            //// create training data
            IMLDataSet testingSet = new BasicMLDataSet(testdata.Data, testdata.Targets);

            //// train the neural network
            ResilientPropagation train = new ResilientPropagation(network, trainingSet);
            train.RType = rproptype;

            stop = false;
            bestsr = 0;
            totalepoch = 0;
            epoch = 10;
            int i = 0;
            now = DateTime.Now.ToString().Replace(":", "_").Replace("/", "_");
            Console.WriteLine("Begin train. Inputs : " + testdata.ColCount + " Nodes : " + (network.Flat.NeuronCount -testdata.ColCount).ToString()  );

            do
            {

                train.Iteration(epoch);
                totalepoch=totalepoch + epoch;
                Console.WriteLine("total epoch" + totalepoch.ToString());
                i = 0;
                foreach (IMLDataPair pair in testingSet)
                {

                    IMLData output = network.Compute(pair.Input);
                    testdata.Targets[i][0] = output[0];
                    i++;
                }

                sr = testdata.CalcTestResult();

                if (sr > bestsr)
                {
                    bestsr = sr;
                    netfile = "E:/Users/Brian/netfiles/encog/Date_" + now + "_eph_" + totalepoch.ToString() + "_v" + timeId++.ToString() + ".net";
                    testdata.epochs = totalepoch;
                    Save(netfile);
                    Console.WriteLine(netfile);
                }
                else if(sr < bestsr - .005)
                {
                    stop = true;
                }

                //Console.WriteLine("Epoch Error:" + train.Error);

            } while (stop == false);
        }
Exemplo n.º 3
0
 private void Save(string filename, NetData resultnet)
 {
     Save(filename);
 }