コード例 #1
0
        private double[] GetOutputs()
        {
            Layer lastLayer = layers[layers.Length - 1];

            double[] outputs = new double[lastLayer.Neurons.Length];
            Array.ForEach(NetMath.Range(lastLayer.Neurons.Length), i => outputs[i] = lastLayer.Neurons[i].Val);
            return(outputs);
        }
コード例 #2
0
 public void Propagate()
 {
     for (int i = 1; i < layers.Length; i++)
     {
         double[] prevLayerValues = new double[layers[i - 1].Neurons.Length];
         Array.ForEach(NetMath.Range(layers[i - 1].Neurons.Length), j => prevLayerValues[j] = layers[i - 1].Neurons[j].Val);
         for (int j = 0; j < layers[i].Neurons.Length; j++)
         {
             double dotSum    = NetMath.DotProduct(prevLayerValues, layers[i].Neurons[j].Weights);
             double activated = Sigmoid(dotSum + layers[i].Neurons[j].Bias);
             layers[i].Neurons[j].Val = activated;
         }
     }
 }
コード例 #3
0
 private void SetInputs(double[] inputs)
 {
     Array.ForEach(NetMath.Range(inputs.Length), i => layers[0].Neurons[i].Val = inputs[i]);
 }