public void InitWeights(IParameterizedLayer wLayer) { float[] data = new float[wLayer.ParametersStorage.Weights.Size]; for (int i = 0; i < wLayer.ParametersStorage.Weights.Size; i++) { data[i] = (float)RandomUtil.GetGaussian(_mean, _deviation); } wLayer.ParametersStorage.Weights.Storage.Data = data; }
public void InitWeights(IParameterizedLayer wLayer) { var variance = 2.0 / wLayer.FIn; float[] data = new float[wLayer.ParametersStorage.Weights.Size]; for (int i = 0; i < wLayer.ParametersStorage.Weights.Size; i++) { data[i] = (float)RandomUtil.GetGaussian(0, Math.Sqrt(variance)); } wLayer.ParametersStorage.Weights.Storage.Data = data; }
public void Mutate(List <Individual> individuals, float mutationRate) { foreach (var individual in individuals) { var mutatedGenotype = individual.Genotype; for (var i = 0; i < mutatedGenotype.Length; i++) { if (RandomUtil.GetRandomNumber(0, 1) <= mutationRate) { mutatedGenotype[i] = (float)RandomUtil.GetGaussian(0, 1); } } individual.Genotype = mutatedGenotype; } }