public Kernel(int size, int depth, LearningRateAnnealerType type) { _learningRateAnnealers = new ILearningRateAnnealer[depth, size, size]; _learningRateAnnealers.ForEach((i, j, k) => _learningRateAnnealers[i, j, k] = LearningRateAnnealerFactory.Produce(type)); _biasLearningRateAnnealer = LearningRateAnnealerFactory.Produce(type); Weights = new double[depth, size, size]; Gradient = new double[depth, size, size]; }
public Neuron( IActivator activator, IWeightInitializer weightInitializer, int numberOfConnections, LearningRateAnnealerType lrat) { Weights = new double[numberOfConnections]; _learningRateAnnealers = new ILearningRateAnnealer[numberOfConnections]; _learningRateAnnealers.ForEach((q, i) => _learningRateAnnealers[i] = LearningRateAnnealerFactory.Produce(lrat)); _biasLearningRateAnnealer = LearningRateAnnealerFactory.Produce(lrat); double magnitude = 1 / Math.Sqrt(numberOfConnections); Weights.ForEach((q, i) => Weights[i] = weightInitializer.GenerateRandom(magnitude)); _activator = activator; }