/// <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(); }
/// <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(); }
/// <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(); }