示例#1
0
    public void GetAnswer()
    {
        List <NN2Node> outputLayerNodes = nodes[nodes.Count - 1];

        foreach (NN2Node nodeOutput in outputLayerNodes)
        {
            //answer[]
        }
        NN2Node nodeAnswer = outputLayerNodes[outputLayerNodes.Count - 1];
        //answer = nodeAnswer.output;
    }
示例#2
0
 public void CreateNodes(int[] layerNodeCounts)
 {
     for (int layer = 0; layer < numLayers; layer++)
     {
         List <NN2Node> layerNodes = new List <NN2Node>();
         nodes.Add(layerNodes);
         for (int n = 0; n < layerNodeCounts[layer]; n++)
         {
             NN2Node node = new NN2Node(layer, this);
         }
     }
     LoadWeights();
     CreateLinks();
 }
示例#3
0
 public void LoadWeights()
 {
     for (int layer = 1; layer < numLayers; layer++)
     {
         List <NN2Node> layerNodes = nodes[layer];
         for (int n = 0; n < layerNodes.Count; n++)
         {
             NN2Node        node           = layerNodes[n];
             List <NN2Node> layerNodeBelow = nodes[layer - 1];
             foreach (NN2Node nodeBelow in layerNodeBelow)
             {
                 nodeBelow.weight = .5f;
             }
         }
     }
 }
示例#4
0
 public void BackPropagate()
 {
     for (int layer = 1; layer < numLayers; layer++)
     {
         List <NN2Node> layerNodes = nodes[layer];
         for (int n = 0; n < layerNodes.Count; n++)
         {
             NN2Node        node           = layerNodes[n];
             List <NN2Node> layerNodeBelow = nodes[layer - 1];
             foreach (NN2Node nodeBelow in layerNodeBelow)
             {
                 nodeBelow.weight *= weightCorrectionScaleFactorAve;
             }
         }
     }
 }
示例#5
0
 public void CreateLinks()
 {
     for (int layer = 1; layer < numLayers; layer++)
     {
         List <NN2Node> layerNodes = nodes[layer];
         for (int n = 0; n < layerNodes.Count; n++)
         {
             NN2Node        node           = layerNodes[n];
             List <NN2Node> layerNodeBelow = nodes[layer - 1];
             foreach (NN2Node nodeBelow in layerNodeBelow)
             {
                 node.inputNodes.Add(nodeBelow);
                 nodeBelow.outputNode = node;
             }
         }
     }
 }
示例#6
0
 public void ForwardFeed()
 {
     for (int layer = 1; layer < numLayers; layer++)
     {
         List <NN2Node> layerNodes = nodes[layer];
         for (int n = 0; n < layerNodes.Count; n++)
         {
             NN2Node node = layerNodes[n];
             node.output = 0;
             List <NN2Node> layerNodeBelow = nodes[layer - 1];
             foreach (NN2Node nodeBelow in layerNodeBelow)
             {
                 node.output += nodeBelow.output * nodeBelow.weight;
             }
         }
     }
 }