public void Activate() { var netInput = Properties.NetInput; var activation = ActivationFunction.Activation(netInput); Properties.ActivationValue = activation; }
public Vector FeedForward(Vector inputVector) { lastInput = inputVector; Matrix inducedField = weightMatrix.Times(inputVector) .Plus(biasVector); Vector inducedFieldVector = new Vector(NumberOfNeurons()); for (int i = 0; i < NumberOfNeurons(); ++i) { inducedFieldVector.SetValue(i, inducedField.Get(i, 0)); } lastInducedField = inducedFieldVector.CopyVector(); Vector resultVector = new Vector(NumberOfNeurons()); for (int i = 0; i < NumberOfNeurons(); ++i) { resultVector.SetValue(i, activationFunction.Activation(inducedFieldVector.GetValue(i))); } // set the result as the last activation value lastActivationValues = resultVector.CopyVector(); return(resultVector); }
public override float getValue() //hier halte ich mich eher an Brotcrunsher als an Bene, siehe das fehlende float value attribut { float sum = 0; foreach (Connection c in connections) { sum += c.getValue(); } //Console.WriteLine("[WORKING NEURON] In die Akt'Fkt eingegeben wird:\n"+sum); //fuer debugging! //Console.WriteLine("von ihr ausgegeben wird:\n"+activationFunction.Activation(sum)); return(activationFunction.Activation(sum)); }
public void CalculateOutput() { // Start with the bias. float output = Bias; // Add each linked neuron's output multiplied by its associated weight. foreach (uint previousLayerNeuronID in NeuronLayer.PreviousWeightLayer.GetPreviousLayerConnections(this)) { output += previousNeuronLayer[previousLayerNeuronID].Output * NeuronLayer.PreviousWeightLayer.GetWeightBetweenNeurons(previousNeuronLayer[previousLayerNeuronID], this); } // Apply the activation and save the output. Output = activationFunction.Activation(output); }
public double Activation(double x) { return(_activationFunction.Activation(x)); }