My Project
stochastic_minimizer.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../common.hpp"
4 #include "../iteration_recorder.hpp"
5 #include <Eigen/Eigen>
6 #include <vector>
7 #include <random>
8 
9 namespace cpu_mlp {
10 
15 template <typename V, typename M>
17 public:
18  virtual ~StochasticMinimizer() = default;
19 
24  void setMaxIterations(int max_iters) { _max_iters = max_iters; }
25 
30  void setStepSize(double s) { step_size = s; }
31 
36  void setTolerance(double tol) { _tol = tol; }
41  void setRecorder(::IterationRecorder<CpuBackend> *recorder) { recorder_ = recorder; }
42 
43 protected:
44  unsigned int _max_iters = 1000;
45  unsigned int _iters = 0;
46  double _tol = 1e-4;
47  double step_size = 0.01;
49 };
50 
51 } // namespace cpu_mlp
CPU recorder that stores loss/gradient history on host.
Definition: iteration_recorder.hpp:18
Base class for Stochastic Minimizers.
Definition: stochastic_minimizer.hpp:16
void setMaxIterations(int max_iters)
Sets the maximum number of iterations.
Definition: stochastic_minimizer.hpp:24
unsigned int _iters
Definition: stochastic_minimizer.hpp:45
unsigned int _max_iters
Definition: stochastic_minimizer.hpp:44
void setTolerance(double tol)
Sets the tolerance for convergence (full gradient norm).
Definition: stochastic_minimizer.hpp:36
::IterationRecorder< CpuBackend > * recorder_
Optional recorder for diagnostics.
Definition: stochastic_minimizer.hpp:48
void setStepSize(double s)
Sets the step size (learning rate).
Definition: stochastic_minimizer.hpp:30
void setRecorder(::IterationRecorder< CpuBackend > *recorder)
Attach a recorder for loss/grad history.
Definition: stochastic_minimizer.hpp:41
double step_size
Definition: stochastic_minimizer.hpp:47
double _tol
Definition: stochastic_minimizer.hpp:46
virtual ~StochasticMinimizer()=default
Definition: layer.hpp:13