private double Activate(Pattern pattern) { for (int i = 0; i < pattern.Inputs.Length; i++) { _inputs[i].Output = pattern.Inputs[i]; } foreach (Neuron neuron in _hidden) { neuron.Activate(); } _output.Activate(); return(_output.Output); }
public void Iterate() { Dictionary <uint, float> newState = new Dictionary <uint, float>(); foreach (KeyValuePair <uint, Neuron> node in neurons) { float aggregate = 0; for (int i = 0; i < node.Value.from.Length; i++) { aggregate += neurons[node.Value.from[i]].state * node.Value.weight[i]; } newState.Add(node.Key, Neuron.Activate(aggregate)); } foreach (KeyValuePair <uint, float> state in newState) { neurons[state.Key].state = state.Value; } }
public double Propagate() { NetworkResources.visitedNeurons.Clear(); return(actuator.Activate()); }