public Gaussian(ILinearAlgebraProvider lap, bool zeroInitialBias = true, double stdDev = 0.1, GaussianVarianceCalibration varianceCalibration = GaussianVarianceCalibration.SquareRootN, GaussianVarianceCount varianceCount = GaussianVarianceCount.FanIn) { _lap = lap; _zeroBias = zeroInitialBias; _varianceCalibration = varianceCalibration; _varianceCount = varianceCount; _distribution = lap.IsStochastic ? new Normal(0, stdDev) : new Normal(0, stdDev, new Random(0)); }
/// <summary> /// Creates a gaussian weight initialiser /// </summary> /// <param name="zeroBias">True to set bias values to zero, otherwise bias initialisation is treated the same as weight initialisation</param> /// <param name="stdDev">Standard deviation of gaussian distribution</param> /// <param name="varianceCalibration">How to calibrate the variance</param> /// <param name="varianceCount">How to count connections while calibrating connections</param> public IWeightInitialisation GaussianWeightInitialisation( bool zeroBias = true, float stdDev = 0.1f, GaussianVarianceCalibration varianceCalibration = GaussianVarianceCalibration.SquareRootN, GaussianVarianceCount varianceCount = GaussianVarianceCount.FanIn ) => new Gaussian(_lap, zeroBias, stdDev, varianceCalibration, varianceCount);