public void Calculate() { for (int layer = 0; layer < TotalLayers; layer++) { Neurons.FindAll(n => n.NetworkLevel == layer).ForEach(n => n.Calculate()); } }
private void WireUpInputNeuronValuePointersToInputBuffer() { Neurons.FindAll(n => n.NetworkLevel == 0).ForEach(n => { n.InputValues.Add(nameof(InputBuffer.DealerValueShowing), latestInput.DealerValueShowing); n.InputValues.Add(nameof(InputBuffer.PlayerPointsShowing), latestInput.PlayerPointsShowing); n.InputValues.Add(nameof(InputBuffer.Softness), latestInput.Softness); }); }
public void WireUpOutputNeuronOutputPointersToOutputBuffer() { var fields = typeof(OutputBuffer).GetFields().ToList(); List <Neuron> outputNeurons = Neurons.FindAll(n => n.NetworkLevel == TotalLayers - 1); for (int i = 0; i < fields.Count; i++) { fields[i].SetValue(latestOutput, outputNeurons[i].OutputPointer); } }
private void WireUpNeuronInputsToPreviousLayerOutputPointers() { for (int layer = 1; layer < TotalLayers; layer++) { List <Neuron> previousLayer = Neurons.FindAll(n => n.NetworkLevel == layer - 1); List <Neuron> currentLayer = Neurons.FindAll(n => n.NetworkLevel == layer); currentLayer.ForEach(n => { previousLayer.ForEach(p => { n.InputValues.Add(p.ID.ToString(), p.OutputPointer); }); }); } }