コード例 #1
0
        public INeuronLayersNeuronOutputs CalculateAllLayersOutputs(INeuronInputs passedInputs)
        {
            IList <INeuronOutputs> neuronLayerNeuronOutputs = new List <INeuronOutputs>(this._Values.Count);

            INeuronInputs layerInputs = passedInputs;

            foreach (INeuronLayer neuronLayer in this._Values)
            {
                INeuronOutputs neuronLayerOutput = neuronLayer.CalculateLayerOutput(layerInputs);
            }
        }
コード例 #2
0
        /// <summary>
        /// Calculates the Outputs for all Neurons in the Layer given the Input.
        /// Notes:
        ///     -float[Neuron Output]
        /// </summary>
        /// <param name="passedInput">The Input for all Neurons in the Layer.</param>
        /// <returns>The Outputs of all Neurons in the Layer.</returns>
        public INeuronOutputs CalculateLayerOutput(INeuronInputs passedInput)
        {
            IList <INeuronOutput> outputs = new List <INeuronOutput>((int)this.NumberOfNeurons);

            for (int i = 0; i < this._Neurons.Count; i++)
            {
                INeuron       neuron       = this._Neurons[i];
                INeuronOutput neuronOutput = neuron.CalculateOutput(passedInput);
                outputs.Add(neuronOutput);
            }
            INeuronOutputs result = new NeuronOutputs(outputs);

            return(result);
        }
コード例 #3
0
        /// <summary>
        /// Calculates Output for the Network.
        /// Notes:
        ///     -float[Neuron Output].
        /// </summary>
        /// <param name="passedInput">The Input for the Network.</param>
        /// <returns>The Output of the Output Layer.</returns>
        public INeuronOutputs CalculateNetworkOutput(INeuronInputs passedInput)
        {
            INeuronInputs nextLayerInput = passedInput;


            IEnumerator <INeuronLayer> neuronLayersEnumeartor = this._AllNeuronLayers.Values;
            INeuronOutputs             result;

            while (neuronLayersEnumeartor.MoveNext())
            {
                INeuronLayer currentNeuronLayer = neuronLayersEnumeartor.Current;
                result         = currentNeuronLayer.CalculateLayerOutput(nextLayerInput);
                nextLayerInput = result;
            }
            return(result);
        }
コード例 #4
0
        /// <summary>
        /// Calculates the Output for the Neuron given the Input.
        /// </summary>
        /// <param name="passedInput">The Input for the Neuron.</param>
        /// <returns>The Output of the Neuron.</returns>
        public INeuronOutput CalculateOutput(INeuronInputs passedInputs)
        {
            float total = 0.0f;

            IEnumerator <INeuronWeight> neuronWeightsEnumerator = this.Weights.Weights;
            IEnumerator <INeuronInput>  neuronInputsEnumerator  = passedInputs.Values;

            while (neuronWeightsEnumerator.MoveNext() && neuronInputsEnumerator.MoveNext())
            {
                INeuronWeight currentWeight = neuronWeightsEnumerator.Current;
                INeuronInput  currentInput  = neuronInputsEnumerator.Current;
                float         tempValue     = currentWeight.Value * currentInput.Value;
                total += tempValue;
            }

            float         computedResult = this.ActivationFunction.CalculateOutput(total, this.Threshold);
            INeuronOutput result         = new NeuronOutput(computedResult);

            return(result);
        }
コード例 #5
0
 public INeuronsNeuronOutput CalculateNeuronsOutput(INeuronInputs passedNeuronInputs)
 {
     throw new NotImplementedException();
 }