public void Build(int inputsCount, int[] hiddenLayersSpec, int outputsCount, ActivationFunction activationFunction, double maximumAbsoluteWeight) { layers = new List<ILayer>(); inputLayer = new InputLayer(); for (int i = 0; i < inputsCount; i++) inputLayer.AddNeuron(new Neuron()); isBipolar = activationFunction == Neuron.BipolarActivationFunction; layers.Add((Layer)inputLayer); if (hiddenLayersSpec != null) for (int i = 0; i < hiddenLayersSpec.Length; i++) { ILayer layer = new Layer(); for (int j = 0; j < hiddenLayersSpec[i]; j++) { layer.AddNeuron(new Neuron(activationFunction)); } layers.Add(layer); } outputLayer = new Layer(); for (int i = 0; i < outputsCount; i++) { outputLayer.AddNeuron(new Neuron(activationFunction)); } layers.Add(outputLayer); ConnectLayers(maximumAbsoluteWeight); }