25 #include <gtest/gtest.h>
31 #define private public
44 double abs_diff = 1.0;
45 while (abs_diff > eps) {
46 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
50 double value = fun.calculateValue(x);
51 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
54 abs_diff = std::abs(value - fun.minValue());
57 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
58 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
72 double abs_diff = 1.0;
73 while (abs_diff > eps) {
74 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
78 double value = fun.calculateValue(x);
79 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
82 abs_diff = std::abs(value - fun.minValue());
85 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
86 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
99 double abs_diff = 1.0;
100 while (abs_diff > eps) {
101 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
105 double value = fun.calculateValue(x);
106 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
109 abs_diff = std::abs(value - fun.minValue());
112 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
113 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
126 size_t iteration = 0;
127 double abs_diff = 1.0;
128 while (abs_diff > eps) {
129 mic::types::MatrixPtr<double> dx = fun.calculateGradient(x);
133 double value = fun.calculateValue(x);
134 ASSERT_EQ(
true, std::isfinite(value)) <<
" at iteration i=" << iteration;
137 abs_diff = std::abs(value - fun.minValue());
140 ASSERT_GE(eps, std::abs(fun.calculateValue(x) - fun.minValue()));
141 std::cout <<
" -> Converged after " << iteration <<
" iterations\n";
Test fixture - artificial landscape - sphere function 20D (square function).
Test fixture - artificial landscape - Rosenbrock function 2D.
Test fixture - artificial landscape - sphere function 1D (square function).
Test fixture - artificial landscape - Beale's function 2D.
TEST_F(Sphere1DLandscape, Adam_Convergence)
virtual void update(mic::types::MatrixPtr< eT > p_, mic::types::MatrixPtr< eT > dp_, eT learning_rate_, eT decay_=0.0)
Adam - adaptive moment estimation.