MagmaDNN  1.0
c++NeuralNetworkFramework
optimizer.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <string>
12 #include <vector>
13 #include "compute/operation.h"
14 
15 namespace magmadnn {
16 namespace optimizer {
17 
18 template <typename T>
19 class Optimizer {
20 public:
21  Optimizer() {}
22 
23  virtual ~Optimizer() {}
24 
25 
26  virtual void minimize(op::Operation<T> *obj_func, const std::vector<op::Operation<T> *>& wrt) = 0;
27 
28  virtual std::string get_name() { return _name; }
29 
30 protected:
31  virtual void update(op::Operation<T> *var, Tensor<T> *grad) = 0;
32 
33  op::Operation<T> *_obj_func;
34  std::string _name = "Generic Optimizer";
35 };
36 
37 } // namespace optimizer
38 } // namespace magmadnn
Definition: addop.cpp:11
Definition: optimizer.h:19
Definition: tensor.h:34
Definition: operation.h:18