Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
            }
        }