Beispiel #1
0
        public static void MainFunc()//string[] args)
        {
            Console.WriteLine("\nBegin deep net training demo \n");

            int numInput = 4;

            int[] numHidden = new int[] { 10, 10, 10 };
            int   numOutput = 3;

            int numDataItems = 2000;

            Console.WriteLine("Generating " + numDataItems + " artificial training data items ");
            double[][] trainData = MakeData(numDataItems, numInput, numHidden, numOutput, 5);
            Console.WriteLine("\nDone. Training data is: ");
            ShowMatrix(trainData, 3, 2, true);

            Console.WriteLine("\nCreating a 4-(10,10,10)-3 deep neural network (tanh & softmax) \n");
            DeepNet dn = new DeepNet(numInput, numHidden, numOutput);
            //dn.Dump();

            int    maxEpochs = 2000;
            double learnRate = 0.001;
            double momentum  = 0.01;

            Console.WriteLine("Setting maxEpochs = " + maxEpochs);
            Console.WriteLine("Setting learnRate = " + learnRate.ToString("F3"));
            Console.WriteLine("Setting momentumm = " + momentum.ToString("F3"));
            Console.WriteLine("\nStart training using back-prop with mean squared error \n");
            double[] wts = dn.Train(trainData, maxEpochs, learnRate, momentum, 10); // show error every maxEpochs / 10
            Console.WriteLine("Training complete \n");

            double trainError = dn.Error(trainData, false);
            double trainAcc   = dn.Accuracy(trainData, false);

            Console.WriteLine("Final model MS error = " + trainError.ToString("F4"));
            Console.WriteLine("Final model accuracy = " + trainAcc.ToString("F4"));

            Console.WriteLine("\nEnd demo ");
            Console.ReadLine();
        } // Main