예제 #1
0
        private void CalculateErrorOut(double[] outPattern)
        {
            BackpropagationLayer outLayer = layers[layers.Count - 1];

            for (int x = 0; x < outPattern.Count(); x++)
            {
                BackpropagationNeuron neuronOut = outLayer.neurons[x];
                //Formula: Erro_saída[j] = (valor_desejado – valor_obtido)* valor_obtido * (1 – (valor_obtido))
                neuronOut.valueError = (outPattern[x] - neuronOut.GetValuePattern()) * neuronOut.GetValuePattern() * (1 - neuronOut.GetValuePattern());
            }
        }
예제 #2
0
        private double[] GetDoubleArrayOutput()
        {
            BackpropagationLayer outLayer = layers[layers.Count - 1];

            double[] result = new double[outLayer.neurons.Count()];

            for (int x = 0; x < outLayer.neurons.Count(); x++)
            {
                BackpropagationNeuron neuron = outLayer.neurons[x];
                result[x] = neuron.GetValuePattern();
            }
            return(result);
        }