25 template <
typename math_t>
26 math_t
max(math_t a, math_t b)
28 return (a < b) ? b : a;
32 template <
typename math_t>
35 return (eta / pow(t, power_t));
38 template <
typename math_t>
44 template <
typename math_t>
47 math_t typw = sqrt(math_t(1.0) / sqrt(alpha));
48 math_t initial_eta0 = typw /
max(math_t(1.0),
regDLoss(-typw, math_t(1.0)));
49 return (math_t(1.0) / (initial_eta0 * alpha));
52 template <
typename math_t>
53 math_t
optimal(math_t alpha, math_t optimal_init,
int t)
55 return math_t(1.0) / (alpha * (optimal_init + t - 1));
58 template <
typename math_t>
math_t max(math_t a, math_t b)
Definition: learning_rate.h:26
math_t invScaling(math_t eta, math_t power_t, int t)
Definition: learning_rate.h:33
math_t optimal(math_t alpha, math_t optimal_init, int t)
Definition: learning_rate.h:53
math_t regDLoss(math_t a, math_t b)
Definition: learning_rate.h:39
math_t calLearningRate(ML::lr_type lr_type, math_t eta, math_t power_t, math_t alpha, math_t t)
Definition: learning_rate.h:59
math_t calOptimalInit(math_t alpha)
Definition: learning_rate.h:45
Definition: dbscan.hpp:27
lr_type
Definition: params.hpp:21
@ OPTIMAL
Definition: params.hpp:22
@ INVSCALING
Definition: params.hpp:24
@ CONSTANT
Definition: params.hpp:23