Exemple #1
0
        /// <summary>
        /// Добавить новый слой. Вторая перегрузка.
        /// </summary>
        /// <param name="w">Матрица весов вставляемого слоя.</param>
        /// <param name="activation">Функция активации вставляемого слоя.</param>
        /// <param name="activationD">Производная пороговой функции вставляемого слоя.</param>
        public void AddLayer(double[,] w, Func <double, double> activation, Func <double, double> activationD = null)
        {
            Perceptron lastLayer = _layers[_layers.Length - 1];

            if (w.GetLength(1) != lastLayer.OutputCount && w.GetLength(1) != lastLayer.OutputCount + 1)
            {
                throw new ArgumentException("AddLayer: Количество входных элементов текущего слоя не соответствует количеству выходных элементов последнего слоя.", "w");
            }
            Array.Resize(ref _layers, _layers.Length + 1);
            _layers[_layers.Length - 1] = new Perceptron(w, activation, activationD);
        }
Exemple #2
0
        /// <summary>
        /// Добавить новый слой. Третья перегрузка.
        /// </summary>
        /// <param name="p">Персептрон вставляемого слоя.</param>
        public void AddLayer(Perceptron p)
        {
            Perceptron lastLayer = _layers[_layers.Length - 1];

            if (p.InputCount != lastLayer.OutputCount && p.InputCount != lastLayer.OutputCount + 1)
            {
                throw new ArgumentException("AddLayer: Количество входных элементов текущего слоя не соответствует количеству выходных элементов последнего слоя.", "w");
            }
            Array.Resize(ref _layers, _layers.Length + 1);
            _layers[_layers.Length - 1] = p;
        }
Exemple #3
0
 /// <summary>
 /// Конструктор. Третья перегрузка.
 /// </summary>
 /// <param name="p">Персептрон первого слоя.</param>
 public Mfn(Perceptron p)
 {
     _layers    = new Perceptron[1];
     _layers[0] = p;
 }
Exemple #4
0
 /// <summary>
 /// Конструктор. Вторая перегрузка.
 /// </summary>
 /// <param name="w">Матрица весов первого слоя.</param>
 /// <param name="activation">Функция активации первого слоя.</param>
 /// <param name="activationD">Производная пороговой функции первого слоя.</param>
 public Mfn(double[,] w, Func <double, double> activation, Func <double, double> activationD = null)
 {
     _layers    = new Perceptron[1];
     _layers[0] = new Perceptron(w, activation, activationD);
 }