25 #include <gtest/gtest.h>
31 #define private public
50 double abs_diff = 1.0;
51 while (abs_diff > eps) {
52 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
57 double value = fun.calculateValue(x);
58 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
61 abs_diff = std::fabs(value - fun.minValue());
64 ASSERT_GE(eps, std::fabs(fun.calculateValue(x) - fun.minValue()));
65 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
79 double abs_diff = 1.0;
80 while (abs_diff > eps) {
81 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
86 double value = fun.calculateValue(x);
87 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
90 abs_diff = std::fabs(value - fun.minValue());
93 ASSERT_GE(eps, std::fabs(fun.calculateValue(x) - fun.minValue()));
94 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
107 size_t iteration = 0;
108 double abs_diff = 1.0;
109 while (abs_diff > eps) {
110 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
115 double value = fun.calculateValue(x);
116 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
119 abs_diff = std::fabs(value - fun.minValue());
122 ASSERT_GE(eps, std::fabs(fun.calculateValue(x) - fun.minValue()));
123 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
Update using AdaDelta - adaptive gradient descent with running average E[g^2] and E[d^2]...
Test fixture - artificial landscape - sphere function 20D (square function).
Test fixture - artificial landscape - sphere function 1D (square function).
TEST_F(Sphere1DLandscape, AdaDelta_Convergence)
Test fixture - artificial landscape - Beale's function 2D.
virtual void update(mic::types::MatrixPtr< eT > p_, mic::types::MatrixPtr< eT > dp_, eT learning_rate_, eT decay_=0.0)