public NeuralNet(int inputCount, int hiddenLayerCount, int hiddenLayerSize, int outputCount) { _inputLayer = new Layer(inputCount, hiddenLayerSize); //layer with as many weights as inputs _hiddenLayers = Enumerable.Range(1, hiddenLayerCount - 1).Select(i => new Layer(hiddenLayerSize, hiddenLayerSize)).ToList(); //the rest of the hidden layers with constant input & node count _outputLayer = new Layer(hiddenLayerSize, outputCount); // outputs to a different amount of nodes }