Ejemplo n.º 1
0
        /// <summary>
        ///     Builds the structure of the neural network to undergo training and testing.
        /// </summary>
        public static void BuildStructure()
        {
            // Input layer construction
            _InputLayer = new Base();
            _InputLayerNodes = new List<Lib.Structure.Node.Base>();
            for (Int32 i = 0; i < 1; i++) _InputLayerNodes.Add(new Lib.Structure.Node.Base(_InputLayer, new Tanh()));

            _InputLayer.SetNodes(_InputLayerNodes);

            // Hidden layer construction
            _HiddenLayer = new Base();
            List<Lib.Structure.Node.Base> hiddenLayerNodes = new List<Lib.Structure.Node.Base>();
            for (Int32 i = 0; i < 20; i++) hiddenLayerNodes.Add(new Lib.Structure.Node.Base(_HiddenLayer, new Tanh()));
            Bias b = new Bias(_InputLayer, new Tanh());
            b.SetValue(1);
            hiddenLayerNodes.Add(b);
            _HiddenLayer.SetNodes(hiddenLayerNodes);

            // Conext layer construction
            _ContextLayer = new RecurrentContext(6, new Tanh());

            //Output layer construction
            _OutputLayer = new Base();
            _OuputLayerNodes = new List<Lib.Structure.Node.Base>();
            for (Int32 i = 0; i < 1; i++) _OuputLayerNodes.Add(new Output(_OutputLayer, new Tanh()));
            _OutputLayer.SetNodes(_OuputLayerNodes);

            // Add the nodes of the output and hidden layers to the context layer (so it generates context codes)
            _ContextLayer.AddSourceNodes(_OuputLayerNodes);
            _ContextLayer.AddSourceNodes(hiddenLayerNodes);

            // Connecting the layers of the neural network together
            _InputLayer.ConnectFowardLayer(_HiddenLayer);
            _HiddenLayer.ConnectFowardLayer(_OutputLayer);
            _ContextLayer.ConnectFowardLayer(_HiddenLayer);

            // Adding the layers to the neural network
            _TestNetworkStructure.AddLayer(_InputLayer);
            _TestNetworkStructure.AddLayer(_HiddenLayer);
            _TestNetworkStructure.AddLayer(_ContextLayer);
            _TestNetworkStructure.AddLayer(_OutputLayer);

            // Generate all the node to node links
            foreach (Base layer in _TestNetworkStructure.GetCurrentLayers()) layer.PopulateNodeConnections();
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Builds the neural networks structure for testing and training
        /// </summary>
        public static void BuildStructure()
        {
            _InputLayer = new Base();
            List<Structure.Node.Base> inputLayerNodes = new List<Structure.Node.Base>();
            for (Int32 i = 0; i < 1; i++) inputLayerNodes.Add(new Structure.Node.Base(_InputLayer, new Tanh()));
            _InputLayer.SetNodes(inputLayerNodes);

            _HiddenLayer = new Base();
            List<Structure.Node.Base> hiddenLayerNodes = new List<Structure.Node.Base>();
            for (Int32 i = 0; i < 5; i++) hiddenLayerNodes.Add(new Structure.Node.Base(_HiddenLayer, new Tanh()));
            _HiddenLayer.SetNodes(hiddenLayerNodes);

            _HiddenLayer2 = new Base();
            List<Structure.Node.Base> hiddenLayerNodes2 = new List<Structure.Node.Base>();
            for (Int32 i = 0; i < 3; i++) hiddenLayerNodes2.Add(new Structure.Node.Base(_HiddenLayer, new Tanh()));
            _HiddenLayer2.SetNodes(hiddenLayerNodes2);

            _ContextLayer = new RecurrentContext(2, new Tanh());

            _OutputLayer = new Base();
            List<Structure.Node.Base> ouputLayerNodes = new List<Structure.Node.Base>();
            for (Int32 i = 0; i < 1; i++) ouputLayerNodes.Add(new Output(_OutputLayer, new Tanh()));
            _OutputLayer.SetNodes(ouputLayerNodes);

            _ContextLayer.AddSourceNodes(inputLayerNodes);
            //ContextLayer.AddSourceNodes (HiddenLayerNodes);

            _InputLayer.ConnectFowardLayer(_HiddenLayer);
            _HiddenLayer.ConnectFowardLayer(_HiddenLayer2);
            _HiddenLayer2.ConnectFowardLayer(_OutputLayer);
            _ContextLayer.ConnectFowardLayer(_HiddenLayer);

            _TestNetworkStructure.AddLayer(_InputLayer);
            _TestNetworkStructure.AddLayer(_HiddenLayer);
            _TestNetworkStructure.AddLayer(_HiddenLayer2);
            _TestNetworkStructure.AddLayer(_ContextLayer);
            _TestNetworkStructure.AddLayer(_OutputLayer);

            //Iterate through all the layers and cause them to build the weights between nddes
            foreach (Base layer in _TestNetworkStructure.GetCurrentLayers()) layer.PopulateNodeConnections();
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Builds the structure for this nerual network test and training.
        /// </summary>
        public static void BuildStructure()
        {
            _InputLayer = new Base();
            List<Structure.Node.Base> inputLayerNodes = new List<Structure.Node.Base>();
            for (Int32 i = 0; i < 1; i++) inputLayerNodes.Add(new Structure.Node.Base(_InputLayer, new Tanh()));
            _InputLayer.SetNodes(inputLayerNodes);

            _HiddenLayer = new Base();
            List<Structure.Node.Base> hiddenLayerNodes = new List<Structure.Node.Base>();
            for (Int32 i = 0; i < 3; i++) hiddenLayerNodes.Add(new Structure.Node.Base(_HiddenLayer, new Tanh()));
            _HiddenLayer.SetNodes(hiddenLayerNodes);

            _ContextLayer = new RecurrentContext(4, new Tanh());

            _OutputLayer = new Base();
            List<Structure.Node.Base> ouputLayerNodes = new List<Structure.Node.Base>();
            for (Int32 i = 0; i < 1; i++) ouputLayerNodes.Add(new Output(_OutputLayer, new Tanh()));
            _OutputLayer.SetNodes(ouputLayerNodes);

            _ContextLayer.AddSourceNodes(inputLayerNodes);
            //ContextLayer.AddSourceNodes (HiddenLayerNodes);

            _InputLayer.ConnectFowardLayer(_HiddenLayer);
            _HiddenLayer.ConnectFowardLayer(_OutputLayer);
            _ContextLayer.ConnectFowardLayer(_HiddenLayer);

            _TestNetworkStructure.AddLayer(_InputLayer);
            _TestNetworkStructure.AddLayer(_HiddenLayer);
            _TestNetworkStructure.AddLayer(_ContextLayer);
            _TestNetworkStructure.AddLayer(_OutputLayer);

            foreach (Base layer in _TestNetworkStructure.GetCurrentLayers()) layer.PopulateNodeConnections();
        }