Exemple #1
0
        public TrainableComponent(WeightsMatrix weights, BiasesVector biases)
            : base(weights.NumberOfInputs, weights.NumberOfOutputs)
        {
            if (weights.NumberOfOutputs != biases.Dimension)
            {
                throw new ArgumentException("Mismatched WeightsMatrix and BiasesVector.");
            }

            _weights = weights;
            _biases  = biases;

            Strategy = new NeuralNet.GradientDescent();  // default  - keep this here?
        }
Exemple #2
0
        public Layer(
            WeightsMatrix weights,
            BiasesVector biases,
            ActivationFunction activationfunction,
            DerivativeFunction derivativefunction
            )
            : base(weights, biases)
        {
            if (weights == null || biases == null)
            {
                throw new ArgumentException("Attempt to make a layer with null weights or biases.");
            }


            if (activationfunction == null)
            {
                _neuralFunction = null;
            }
            else
            {
                _neuralFunction = new NeuralFunction(NumberOfOutputs, activationfunction, derivativefunction);
            }
        }
Exemple #3
0
 public BiasesVector Subtract(BiasesVector other)
 {
     return(new BiasesVector(SubtractMatrices(this, other).Row(0)));
 }
Exemple #4
0
        public override BiasesVector BiasesUpdate(NeuralNet2.BiasesVector gradient)
        {
            Matrix delta = gradient.Scale(-_stepSize / _batchSize);

            return(new BiasesVector(delta));
        }
Exemple #5
0
 public abstract NeuralNet2.BiasesVector BiasesUpdate(NeuralNet2.BiasesVector gradient);
Exemple #6
0
 public static Layer CreateLinearLayer(WeightsMatrix weights, BiasesVector biases)
 {
     return(new Layer(weights, biases, null, null));
 }
Exemple #7
0
 public Layer(WeightsMatrix weights, BiasesVector biases)
     : this(weights, biases, null, null)
 {
 }
Exemple #8
0
 public static Layer CreateLogisticLayer(WeightsMatrix weights, BiasesVector biases)
 {
     return(new Layer(weights, biases, NeuralFunction.__Logistic, NeuralFunction.__LogisticDerivative));
 }
Exemple #9
0
        protected override void _updateBiases(VectorBatch outputGradient)
        {
            BiasesVector biasesGradient = new BiasesVector(_activationGradient.SumColumnsAsMatrix());

            _biases = _biases.Add(Strategy.BiasesUpdate(biasesGradient));
        }
Exemple #10
0
 public WeightedCombiner(WeightsMatrix weights, BiasesVector biases)
     : base(weights, biases)
 {
 }