示例#1
0
        public void Learn()
        {
            Outputs.Clear();
            var    error     = 0.0;
            double testError = 0.0;

            for (var i = 0; i < hiddenLayerOutputs.Count; i++)
            {
                _neuron.Inputs = hiddenLayerOutputs[i];
                _neuron.CalculateOutput();

                Train(hiddenLayerOutputs[i], SampleRepository.TrainSamples[i].ExpectedValues.First());
                Outputs.Add(_neuron.Output);
            }

            for (int i = 0; i < hiddenLayerOutputs.Count; i++)
            {
                _neuron.Inputs = hiddenLayerOutputs[i];
                _neuron.CalculateOutput();
                error += _neuron.CalculateError(SampleRepository.TrainSamples[i].ExpectedValues.First());
            }

            for (int i = 0; i < SampleRepository.TestSamples.Count; i++)
            {
                CalculateNetworkOutput(new SamplePoint(SampleRepository.TestSamples[i].Inputs));
                testError += _neuron.CalculateError(SampleRepository.TestSamples[i].ExpectedValues.First());
            }

            TotalErrors.Add(error / hiddenLayerOutputs.Count);
            TotalTestErrors.Add(testError / SampleRepository.TestSamples.Count);
        }
示例#2
0
        public void StuffDooer()
        {
            CalculateHiddenLayerOutputs();
            InitOutputLayerWeights();
            TotalErrors.Clear();

            var error = 0.0;

            for (var i = 0; i < hiddenLayerOutputs.Count; i++)
            {
                _neuron.Inputs = hiddenLayerOutputs[i];
                _neuron.CalculateOutput();

                Train(hiddenLayerOutputs[i], SampleRepository.TrainSamples[i].ExpectedValues.First());

                error += _neuron.CalculateError(SampleRepository.TrainSamples[i].ExpectedValues.First());
            }

            TotalErrors.Add(error);
        }