mirror of
https://github.com/boostorg/math.git
synced 2026-02-24 04:02:18 +00:00
updates
This commit is contained in:
@@ -1,26 +1,31 @@
|
||||
// Copyright Maksym Zhelyenzyakov 2025-2026.
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// https://www.boost.org/LICENSE_1_0.txt)
|
||||
#include "test_autodiff_reverse.hpp" // reuse for some basic options
|
||||
#include "test_functions_for_optimization.hpp"
|
||||
#include <boost/math/differentiation/autodiff_reverse.hpp>
|
||||
#include <boost/math/optimization/minimizer.hpp>
|
||||
#include <boost/math/optimization/nesterov.hpp>
|
||||
namespace rdiff = boost::math::differentiation::reverse_mode;
|
||||
namespace bopt = boost::math::optimization;
|
||||
namespace bopt = boost::math::optimization;
|
||||
BOOST_AUTO_TEST_SUITE(basic_gradient_descent)
|
||||
|
||||
BOOST_AUTO_TEST_CASE_TEMPLATE(default_nesterov_test, T, all_float_types)
|
||||
{
|
||||
size_t NITER = 5;
|
||||
T lr = T{1e-3};
|
||||
T mu = T{0.95};
|
||||
RandomSample<T> rng{T(-10), (10)};
|
||||
std::vector<rdiff::rvar<T, 1>> x;
|
||||
x.push_back(rng.next());
|
||||
x.push_back(rng.next());
|
||||
T eps = T{1e-8};
|
||||
auto nag = bopt::make_nag(&quadratic_high_cond_2D<rdiff::rvar<T, 1>>, x, lr, mu);
|
||||
auto z = minimize(nag);
|
||||
for (auto& xi : x) {
|
||||
BOOST_REQUIRE_SMALL(xi.item(), eps);
|
||||
}
|
||||
size_t NITER = 5;
|
||||
T lr = T{ 1e-3 };
|
||||
T mu = T{ 0.95 };
|
||||
RandomSample<T> rng{ T(-10), (10) };
|
||||
std::vector<rdiff::rvar<T, 1>> x;
|
||||
x.push_back(rng.next());
|
||||
x.push_back(rng.next());
|
||||
T eps = T{ 1e-8 };
|
||||
auto nag =
|
||||
bopt::make_nag(&quadratic_high_cond_2D<rdiff::rvar<T, 1>>, x, lr, mu);
|
||||
auto z = minimize(nag);
|
||||
for (auto& xi : x) {
|
||||
BOOST_REQUIRE_SMALL(xi.item(), eps);
|
||||
}
|
||||
}
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
Reference in New Issue
Block a user