Esempio n. 1
0
        /// <summary>
        /// 初始化神经网络
        /// </summary>
        /// <param name="inLayerNodeCount">输入层节点数</param>
        /// <param name="hiddenLayerNodeCount">输出层节点数</param>
        /// <param name="outLayerNodeCount">输出层节点数</param>
        public NeuralNet(LayerData inLayerNode, [NotNull] LayerData[] hiddenLayerNode, LayerData outLayerNode)
        {
            // 输入层
            InLayer = new NeuronLayer(inLayerNode.NodeCount, inLayerNode.ActiveType);

            // 隐层
            HideLayer = new NeuronLayer[hiddenLayerNode.Length];

            for (var i = 0; i < hiddenLayerNode.Length; i++)
            {
                HideLayer[i] = new NeuronLayer(hiddenLayerNode[i].NodeCount, hiddenLayerNode[i].ActiveType);
            }

            // 输出层
            OutLayer = new NeuronLayer(outLayerNode.NodeCount, outLayerNode.ActiveType);

            InLayer.ConnectLayer(HideLayer[0]);

            for (var i = 0; i < hiddenLayerNode.Length - 1; i++)
            {
                HideLayer[i].ConnectLayer(HideLayer[i + 1]);
            }

            HideLayer[HideLayer.Length - 1].ConnectLayer(OutLayer);
        }
Esempio n. 2
0
        /// <summary>
        /// 初始化神经网络
        /// </summary>
        /// <param name="inLayerNodeCount">输入层节点数</param>
        /// <param name="hiddenLayerNodeCount">输出层节点数</param>
        /// <param name="outLayerNodeCount">输出层节点数</param>
        public NeuralNet(int inLayerNodeCount, [NotNull] int[] hiddenLayerNodeCount, int outLayerNodeCount)
        {
            // 输入层
            InLayer = new NeuronLayer(inLayerNodeCount);

            // 隐层
            HideLayer = new NeuronLayer[hiddenLayerNodeCount.Length];

            for (var i = 0; i < hiddenLayerNodeCount.Length; i++)
            {
                HideLayer[i] = new NeuronLayer(hiddenLayerNodeCount[i]);
            }

            // 输出层
            OutLayer = new NeuronLayer(outLayerNodeCount);

            InLayer.ConnectLayer(HideLayer[0]);

            for (var i = 0; i < hiddenLayerNodeCount.Length - 1; i++)
            {
                HideLayer[i].ConnectLayer(HideLayer[i + 1]);
            }

            HideLayer[HideLayer.Length - 1].ConnectLayer(OutLayer);
        }
Esempio n. 3
0
 /// <summary>
 /// 连接层
 /// </summary>
 /// <param name="layer">层类</param>
 public void ConnectLayer([NotNull] NeuronLayer layer)
 {
     NextLayer      = layer;
     layer.PreLayer = this;
     for (var i = 0; i < NodeList.Count; i++)
     {
         for (var j = 0; j < NextLayer.NodeList.Count; j++)
         {
             NodeList[i].ConnectNeuron(NextLayer.NodeList[j]);
         }
     }
 }