24 #ifndef SOM_LEARNINGRESTRAINTFUNC_H 25 #define SOM_LEARNINGRESTRAINTFUNC_H 32 namespace LearningRestraintFunc {
34 using Signature = std::function<double(std::size_t iteration, std::size_t total_iterations)>;
37 return [](std::size_t iteration, std::size_t total_iterations) ->
double {
38 return 1.0 * (total_iterations - iteration) / total_iterations;
43 return [initial_rate](std::size_t iteration, std::size_t total_iterations) ->
double {
44 return initial_rate * std::exp(-1. * iteration / total_iterations);
Signature exponentialDecay(double initial_rate)
std::function< double(std::size_t iteration, std::size_t total_iterations)> Signature