コード例 #1
0
        protected override void LearnSample(Entrenamiento trainingSample, int currentIteration, int trainingEpochs)
        {
            // No validation here
            int layerCount = layers.Count;

            // Set input vector
            inputLayer.SetInput(trainingSample.InputVector);

            for (int i = 0; i < layerCount; i++)
            {
                layers[i].Run();
            }

            // Set Errors
            meanSquaredError += (outputLayer as ActivationLayer).SetErrors(trainingSample.OutputVector);

            // Backpropagate errors
            for (int i = layerCount; i > 0;)
            {
                ActivationLayer layer = layers[--i] as ActivationLayer;
                if (layer != null)
                {
                    layer.EvaluateErrors();
                }
            }

            // Optimize synapse weights and neuron bias values
            for (int i = 0; i < layerCount; i++)
            {
                layers[i].Learn(currentIteration, trainingEpochs);
            }
        }
コード例 #2
0
        public ActivationNeuron(ActivationLayer parent)
        {
            Helper.ValidateNotNull(parent, "parent");

            this.input  = 0d;
            this.output = 0d;
            this.error  = 0d;
            this.bias   = 0d;
            this.parent = parent;
        }
コード例 #3
0
 public RedBackpropagation(ActivationLayer inputLayer, ActivationLayer outputLayer)
     : base(inputLayer, outputLayer, TrainingMethod.Supervised)
 {
     this.meanSquaredError = 0d;
     this.isValidMSE       = false;
 }