/// <summary> /// Construct the outstar trainer. /// </summary> /// /// <param name="theNetwork">The network to train.</param> /// <param name="theTraining">The training data, must provide ideal outputs.</param> /// <param name="theLearningRate">The learning rate.</param> public TrainOutstar(CPNNetwork theNetwork, IMLDataSet theTraining, double theLearningRate) : base(TrainingImplementationType.Iterative) { _mustInit = true; _network = theNetwork; _training = theTraining; _learningRate = theLearningRate; }
/// <summary> /// Construct the instar training object. /// </summary> /// /// <param name="theNetwork">The network to be trained.</param> /// <param name="theTraining">The training data.</param> /// <param name="theLearningRate">The learning rate.</param> /// <param name="theInitWeights">training elements as instar neurons.</param> public TrainInstar(CPNNetwork theNetwork, IMLDataSet theTraining, double theLearningRate, bool theInitWeights) : base(TrainingImplementationType.Iterative) { _network = theNetwork; _training = theTraining; _learningRate = theLearningRate; _mustInit = theInitWeights; }
public void TrainOutstar(CPNNetwork network, IMLDataSet training) { int epoch = 1; IMLTrain train = new TrainOutstar(network, training, 0.1); for (int i = 0; i < 1000; i++) { train.Iteration(); app.WriteLine("Training outstar, Epoch #" + epoch); epoch++; } }
public void Test(CPNNetwork network, String[][] pattern, double[][] input) { for (int i = 0; i < pattern.Length; i++) { IMLData inputData = new BasicMLData(input[i]); IMLData outputData = network.Compute(inputData); double angle = DetermineAngle(outputData); // display image for (int j = 0; j < HEIGHT; j++) { if (j == HEIGHT - 1) { app.WriteLine("[" + pattern[i][j] + "] -> " + ((int)angle) + " deg"); } else { app.WriteLine("[" + pattern[i][j] + "]"); } } Console.WriteLine(); } }
private CPNNetwork Create() { CPNNetwork result = new CPNNetwork(5, 4, 3, 2); return(result); }