コード例 #1
0
        public void AddNode(int plLayer, eNeuralNodeType peType)
        {
            Node       oNode;
            Connection oConnection;
            int        lNodeIndex;

            //create node
            oNode          = new Node(peType, plLayer);
            oNode.Treshold = 0;
            oNode.Id       = Nodes.Count;
            Nodes.Add(oNode);

            switch (peType)
            {
            case eNeuralNodeType.eInput:
            {
                InputNodes.Add(oNode);
                break;
            }

            case eNeuralNodeType.eOutput:
            {
                OutputNodes.Add(oNode);
                break;
            }
            }

            lNodeIndex = Nodes.Count - 1;

            //create connections to all nodes in previous layer
            for (int lIndex = 0; lIndex < (int)Nodes.Count; lIndex++)
            {
                if (Nodes[lIndex].lLayer == plLayer - 1)
                {
                    oConnection = new Connection(lIndex, lNodeIndex);

                    oConnection.fWeight = 0;

                    oNode.Connections.Add(oConnection);
                }
            }

            //create connections to all nodes in next layer
            foreach (Node Node in Nodes)
            {
                if (Node.lLayer == plLayer + 1)
                {
                    oConnection = new Connection(lNodeIndex, Node.Id);

                    oConnection.fWeight = 0;

                    Node.Connections.Add(oConnection);
                }
            }
        }
コード例 #2
0
ファイル: NeuralNode.cs プロジェクト: Meusesoft/OCR
        public Node(eNeuralNodeType peType, int plLayer)
        {
            m_Type                 = peType;
            m_Layer                = plLayer;
            m_Calculated           = false;
            m_Value                = 0;
            m_CumulativeErrorDelta = 0;

            Treshold = 0;
            InputMax = 0;
            Id       = 0;

            Connections = new List <Connection>(0);
        }