public override void Validate()
{
if (LearningRate <= 0)
throw new NeuralNetworkException($"Property LearningRate must be positive; was {LearningRate}.");
if (Momentum < 0)
throw new NeuralNetworkException($"Property Momentum cannot be negative; was {Momentum}.");
if (QuadraticRegularization < 0)
throw new NeuralNetworkException(
$"Property QuadraticRegularization cannot be negative; was {QuadraticRegularization}.");
if (NumEpochs <= 0)
throw new NeuralNetworkException($"Property NumEpochs must be positive; was {NumEpochs}.");
}
public void Validate_IfQuadraticRegularizationNegative_Throw() { const double bad = -0.1; var trainer = new SimpleGradientTrainer { LearningRate = 0.1, NumEpochs = 100, QuadraticRegularization = bad }; Action action = () => trainer.Validate(); action.ShouldThrow<NeuralNetworkException>() .WithMessage($"*Property QuadraticRegularization cannot be negative; was {bad}*"); }