/// <summary> /// Program entry point. /// </summary> /// <param name="app">Holds arguments and other info.</param> public void Execute(IExampleInterface app) { var network = new FlatNetwork(2, 4, 0, 1, false); network.Randomize(); IMLDataSet trainingSet = new BasicMLDataSet(XORInput, XORIdeal); var train = new TrainFlatNetworkResilient(network, trainingSet); int epoch = 1; do { train.Iteration(); Console.WriteLine(@"Epoch #" + epoch + @" Error:" + train.Error); epoch++; } while (train.Error > 0.01); var output = new double[1]; // test the neural network Console.WriteLine(@"Neural Network Results:"); foreach (IMLDataPair pair in trainingSet) { double[] input = pair.Input.Data; network.Compute(input, output); Console.WriteLine(input[0] + @"," + input[1] + @":" + output[0]); } }
/// <summary> /// Program entry point. /// </summary> /// <param name="app">Holds arguments and other info.</param> public void Execute(IExampleInterface app) { IMLDataSet trainingSet = new BasicMLDataSet(XORInput, XORIdeal); FlatNetwork network = CreateNetwork(); Console.WriteLine(@"Starting Weights:"); DisplayWeights(network); Evaluate(network, trainingSet); TrainFlatNetworkResilient train = new TrainFlatNetworkResilient( network, trainingSet); for (int iteration = 1; iteration <= ITERATIONS; iteration++) { train.Iteration(); Console.WriteLine(); Console.WriteLine(@"*** Iteration #" + iteration); Console.WriteLine(@"Error: " + train.Error); Evaluate(network, trainingSet); Console.WriteLine(@"LastGrad:" + FormatArray(train.LastGradient)); Console.WriteLine(@"Updates :" + FormatArray(train.UpdateValues)); DisplayWeights(network); } }