public NeuralNetworkBuilder WithInputLayer(int neuronCount, ActivationType activationType, double biasOutput = 1)
        {
            var neurons = new List <Neuron>();

            for (var i = 0; i < neuronCount; i++)
            {
                neurons.Add(Neuron.For(context, activationType));
            }

            inputLayer = InputLayer.For(neurons, BiasNeuron.For(context, activationType, biasOutput));
            return(this);
        }
        public NeuralNetworkBuilder WithHiddenLayer(int neuronCount, ActivationType activationType, double biasOutput = 1)
        {
            var neurons = new List <Neuron>();

            for (var i = 0; i < neuronCount; i++)
            {
                neurons.Add(Neuron.For(
                                context,
                                activationType,
                                randomNumberGenerator,
                                PreviousLayer.Neurons));
            }

            hiddenLayers.Add(HiddenLayer.For(neurons, BiasNeuron.For(context, activationType, biasOutput)));
            return(this);
        }