Exemple #1
0
        /// <summary>
        /// Klonuje matrix a następnie wykonuje na nim operację.
        /// </summary>
        /// <param name="m">Matrix.</param>
        /// <param name="operation">Operacja do wykonania.</param>
        /// <returns>Zwraca matrix z wykonaną na nim operacją.</returns>
        static public Matrix Foreach(Matrix m, FloatOperationHandler operation)
        {
            Matrix output = (Matrix)m.Clone();

            output.Foreach(operation);
            return(output);
        }
Exemple #2
0
 /// <summary>
 /// Iteruje przez wszytkie dane matrixu i wykonuje na nich operację.
 /// </summary>
 /// <param name="operation">Operacja do wykonania.</param>
 public void Foreach(FloatOperationHandler operation)
 {
     for (int x = 0; x < Rows; x++)
     {
         for (int y = 0; y < Columns; y++)
         {
             Data[x, y] = operation.Invoke(Data[x, y]);
         }
     }
 }
Exemple #3
0
        /// <summary>
        /// Tworzy nową 3 warstwową sieć neuronową z określonym rozmiarem każdej warstwy i określonymi funkcjami aktywacyjnymi.
        /// </summary>
        /// <param name="inputsLayerSize">Ilość inputów.</param>
        /// <param name="hiddenLayerSize">Ilość ukrytych neuronów.</param>
        /// <param name="outputsLayerSize">Ilość outputów.</param>
        /// <param name="hiddenLayerActivationFunction">Funkcja aktywacyjna dla neuronów ukrytej warstwy.</param>
        /// <param name="outputLayerActivationFunction">Funkcja aktywacyjna dla neuronów warstwy outputów.</param>
        /// <param name="hiddenLayerDerivativeFunction">Pochodna dla funckcji aktywacyjnej warstwy ukrytej.</param>
        /// <param name="outputLayerDerivativeFunction">Pochodna dla funckcji aktywacyjnej warstwy outputów.</param>
        public SimpleNeuralNetwork(int inputsLayerSize, int hiddenLayerSize, int outputsLayerSize, ActivationFunctionHandler hiddenLayerActivationFunction, ActivationFunctionHandler outputLayerActivationFunction, FloatOperationHandler hiddenLayerDerivativeFunction, FloatOperationHandler outputLayerDerivativeFunction)
        {
            InputsLayerSize  = inputsLayerSize;
            HiddenLayerSize  = hiddenLayerSize;
            OutputsLayerSize = outputsLayerSize;
            HiddenLayerActivationFunction = hiddenLayerActivationFunction;
            OutputLayerActivationFunction = outputLayerActivationFunction;
            HiddenLayerDerivativeFunction = hiddenLayerDerivativeFunction;
            OutputLayerDerivativeFunction = outputLayerDerivativeFunction;

            weightsIh = new Matrix(HiddenLayerSize, InputsLayerSize);
            weightsHo = new Matrix(OutputsLayerSize, HiddenLayerSize);
            weightsIh.Randomize(-1, 1);
            weightsHo.Randomize(-1, 1);
            biasH = new Matrix(HiddenLayerSize, 1);
            biasO = new Matrix(OutputsLayerSize, 1);
            biasH.Randomize(-1, 1);
            biasO.Randomize(-1, 1);
        }