public NeuralNetworkGUI(InputLayer inputLayer, List <HiddenLayer> hiddenLayers, OutputLayer outputLayer, List <Layer> layers) { this.inputLayer = inputLayer; this.hiddenLayers = hiddenLayers; this.outputLayer = outputLayer; this.layers = layers; neuronWidth = 40; neuronHeight = 40; Layer largestLayer = layers.OrderByDescending(n => n.Neurons.Count()).First(); int layoutColumns = layers.Count(); int layoutRows = largestLayer.Neurons.Count(); Width = neuronWidth * layoutColumns; Height = neuronHeight * layoutRows; Padding padding = new Padding(); padding.All = 10; this.Padding = padding; neuralNetworkLayout = CreateTable(layoutRows, layoutColumns); CreateNeurons(); Controls.Add(neuralNetworkLayout); NeuronGUI neuronGUI = new NeuronGUI(inputLayer.Neurons[0]); }
// Creates layers and create neurons in layers private void CreateLayers(int numberOfInputNeurons, int[] outputLabels, int[] hiddenLayerStructure) { int numberOfHiddenLayers = hiddenLayerStructure.Length; // Make input layer this.InputLayer = new InputLayer(numberOfInputNeurons); // Make hidden layers this.HiddenLayers = new List <HiddenLayer>(); for (int i = 0; i < numberOfHiddenLayers; i++) { HiddenLayers.Add(new HiddenLayer(hiddenLayerStructure[i])); } // Make output layer this.OutputLayer = new OutputLayer(outputLabels); // Add all layers to list of layers List <Layer> layers = new List <Layer>(); layers.Add(InputLayer); layers.AddRange(HiddenLayers); layers.Add(OutputLayer); Layers = layers; }