Add tests for ml activation derivatives
This commit is contained in:
parent
e378e24739
commit
24b138b7e0
1 changed files with 21 additions and 0 deletions
|
|
@ -12,6 +12,27 @@ using namespace psemek::ml;
|
|||
using namespace psemek::random;
|
||||
using namespace psemek::math;
|
||||
|
||||
test_case(ml_neural__net_activation)
|
||||
{
|
||||
generator rng;
|
||||
for (std::size_t i = 0; i < activation_type_values().size(); ++i)
|
||||
{
|
||||
auto a = static_cast<activation_type>(i);
|
||||
|
||||
for (std::size_t j = 0; j < 64; ++j)
|
||||
{
|
||||
double const eps = 1e-6;
|
||||
|
||||
double x = uniform(rng, -10.0, 10.0);
|
||||
|
||||
double value = activation(x, a);
|
||||
double exact_derivative = activation_derivative(value, a);
|
||||
double approx_derivative = (activation(x + eps, a) - value) / eps;
|
||||
expect_close(exact_derivative, approx_derivative, 1e-6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test_case(ml_neural__net_gradient)
|
||||
{
|
||||
generator rng;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue