/// <summary> /// 创建新图层 /// </summary> /// <param name="neuronCount"> /// 图层中的神经元数量 /// </param> /// <exception cref="ArgumentException"> /// 如果神经元计数不为正 /// </exception> protected Layer(int neuronCount) { Helper.ValidatePositive(neuronCount, "neuronCount"); this.neurons = new TNeuron[neuronCount]; this.learningRateFunction = new LinearFunction(0.3d, 0.05d); }
/// <summary> /// 设置学习速率函数。 /// </summary> /// <param name="learningRateFunction"> /// 学习率函数使用。 /// </param> /// <exception cref="ArgumentNullException"> /// 如果<c> learningRateFunction </ c>是<c> null </ c> /// </exception> public void SetLearningRate(ILearningRateFunction learningRateFunction) { // 验证被委派 for (int i = 0; i < layers.Count; i++) { layers[i].SetLearningRate(learningRateFunction); } }
/// <summary> /// Sets the learning rate function. /// </summary> /// <param name="learningRateFunction"> /// Learning rate function to use. /// </param> /// <exception cref="ArgumentNullException"> /// If <c>learningRateFunction</c> is <c>null</c> /// </exception> public void SetLearningRate(ILearningRateFunction learningRateFunction) { // Validation is delegated for (int i = 0; i < layers.Count; i++) { layers[i].SetLearningRate(learningRateFunction); } }
/// <summary> /// Deserialization Constructor /// </summary> /// <param name="info"> /// Serialization information to deserialize and obtain the data /// </param> /// <param name="context"> /// Serialization context to use /// </param> /// <exception cref="ArgumentNullException"> /// If <c>info</c> is <c>null</c> /// </exception> protected Layer(SerializationInfo info, StreamingContext context) { // Validate Helper.ValidateNotNull(info, "info"); // Deserialize int neuronCount = info.GetInt32("neuronCount"); this.neurons = new TNeuron[neuronCount]; this.initializer = info.GetValue("initializer", typeof(IInitializer)) as IInitializer; this.learningRateFunction = info.GetValue("learningRateFunction", typeof(ILearningRateFunction)) as ILearningRateFunction; }
/// <summary> /// 设置学习速率函数。 /// </summary> /// <param name="learningRateFunction"> /// 学习率函数使用。 /// </param> /// <exception cref="System.ArgumentNullException"> /// 如果学习速率函数为null /// </exception> public void SetLearningRate(ILearningRateFunction learningRateFunction) { Helper.ValidateNotNull(learningRateFunction, "learningRateFunction"); this.learningRateFunction = learningRateFunction; }