// ReSharper disable once TooManyDependencies
        public BackPropagationNeuralNetwork(NeuralNetworkConfiguration configuration)
        {
            _numberOfInputNodes = configuration.NumberOfInputNodes;
            _numberOfHiddenNodes = configuration.NumberOfHiddenNodes;
            _numberOfOutputNodes = configuration.NumberOfOutputNodes;

            _hiddenBiases = new double[configuration.NumberOfHiddenNodes];
            _hiddenOutputs = new double[configuration.NumberOfHiddenNodes];

            _outputBiases = new double[configuration.NumberOfOutputNodes];
            _outputs = new double[configuration.NumberOfOutputNodes];
            _inputs = new double[configuration.NumberOfInputNodes];
            _function = configuration.ActivationFunction;

            _previousHiddenBiasesDelta = new double[configuration.NumberOfHiddenNodes];
            _previousOutputBiasesDelta = new double[configuration.NumberOfOutputNodes];

            _hiddenOutputWeights = NeuralNetworkHelpers.CreateMatrix(configuration.NumberOfHiddenNodes, configuration.NumberOfOutputNodes);

            _hiddenInputWeights = NeuralNetworkHelpers.CreateMatrix(configuration.NumberOfInputNodes, configuration.NumberOfHiddenNodes);

            _previousHiddenInputWeightDelta = NeuralNetworkHelpers.CreateMatrix(configuration.NumberOfInputNodes, configuration.NumberOfHiddenNodes);

            _previousHiddenOutputWeightDelta = NeuralNetworkHelpers.CreateMatrix(configuration.NumberOfHiddenNodes, configuration.NumberOfOutputNodes);

            _numberOfWeights = DetermineNumberOfWeightsAndBiases();

            InitializeWeights();
        }
 public LayerBuilder(int size, int connections, float lr, float mo, ANNOperationsEnum operation, ActivationFunctionEnum activation, EnumOptimizerFunction optmizator)
 {
     this.size        = size;
     this.connections = connections;
     this.lr          = lr;
     this.mo          = mo;
     this.operation   = operation;
     this.activation  = activation;
     this.optmizator  = optmizator;
 }
Esempio n. 3
0
 public LayerCreatorOptmizerMultiple(int size, int[] connections, float lr, float mo, ANNOperationsEnum activator, ActivationFunctionEnum tANH)
 {
     this.size        = size;
     this.connections = connections;
     this.lr          = lr;
     this.mo          = mo;
     this.operation   = activator;
     this.activation  = tANH;
 }
Esempio n. 4
0
 public LayerCreatorOptmizer(int size, int connections, float lr, float mo, ANNOperationsEnum operation, ActivationFunctionEnum activation)
 {
     this.size        = size;
     this.connections = connections;
     this.lr          = lr;
     this.mo          = mo;
     this.activation  = activation;
     this.operation   = operation;
 }