/// <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;
 }
Example #3
0
        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();
            }
        }
Example #5
0
        private CPNNetwork Create()
        {
            CPNNetwork result = new CPNNetwork(5, 4, 3, 2);

            return(result);
        }