public SinglelayerPerceptron(PerceptronParameters parameters, Activation activation, int lengthOfInput, int lengthOfOutput) { CheckInitializationParameters(parameters, activation, lengthOfInput, lengthOfOutput); Activation = activation; InitVectors(lengthOfInput, lengthOfOutput); InitMatrixes(lengthOfInput, lengthOfOutput); }
public MultilayerPerceptron(PerceptronParameters parameters, Activation activation, params int[] lengthsOfEachLayer) { CheckInitializationParameters(parameters, activation, lengthsOfEachLayer); InitializeNeurons(lengthsOfEachLayer); InitializeWeigthsAndDefference(lengthsOfEachLayer); Parameters = parameters; Activation = activation; }
protected void CheckInitializationParameters(PerceptronParameters parameters, Activation activation, params int[] lengthsOfEachLayer) { CheckConditionOnException(parameters is null, "Neural network parameters is null"); CheckConditionOnException(activation is null, "Activation function is null"); CheckConditionOnException(lengthsOfEachLayer.Length < 2, "The number of elements of lengths of vectors of neurons should be more than 1"); for (var i = 0; i < lengthsOfEachLayer.Length; i++) { CheckConditionOnException(lengthsOfEachLayer[i] < 1, $"The number of neurons in layer {i} must be greater than 0"); } }