Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <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);
     }
 }
Ejemplo n.º 3
0
 /// <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);
     }
 }
Ejemplo n.º 4
0
        /// <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;
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 设置学习速率函数。
 /// </summary>
 /// <param name="learningRateFunction">
 /// 学习率函数使用。
 /// </param>
 /// <exception cref="System.ArgumentNullException">
 /// 如果学习速率函数为null
 /// </exception>
 public void SetLearningRate(ILearningRateFunction learningRateFunction)
 {
     Helper.ValidateNotNull(learningRateFunction, "learningRateFunction");
     this.learningRateFunction = learningRateFunction;
 }
Ejemplo n.º 6
0
 /// <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);
     }
 }