public FullConLayer(int outputCount, ActivationFunc activation)
        {
            OutputDepth  = 1;
            OutputWidth  = 1;
            OutputHeight = outputCount;

            _neurons    = new Neuron[outputCount];
            _output     = new Matrix3D(1, outputCount, 1);
            _activation = activation;

            for (int i = 0; i < outputCount; i++)
            {
                _neurons[i] = new Neuron();
            }
        }
        public ConvLayer(int outputCount, ActivationFunc activation = null, int kernelSize = 5)
        {
            if (activation == null)
            {
                activation = ActivationFuncs.ReLU;
            }

            OutputDepth = outputCount;

            _kernelSize = kernelSize;
            _activation = activation;

            _neurons = new ConvNeuron[outputCount];


            for (int i = 0; i < outputCount; i++)
            {
                _neurons[i] = new ConvNeuron(kernelSize);
            }
        }