MagmaDNN  1.0
c++NeuralNetworkFramework
sumop.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <vector>
12 #include <cstdio>
13 #include "compute/operation.h"
14 #include "tensor/tensor.h"
15 #include "utilities_internal.h"
17 
18 namespace magmadnn {
19 namespace op {
20 
21 template <typename T>
22 class SumOp : public Operation<T> {
23 public:
24  SumOp(std::vector<Operation<T> *> ops, bool copy=true);
25 
26  std::string to_string();
27 
28 protected:
29  Tensor<T> *_eval(bool recompute=true);
31 
32  std::vector<Operation<T> *> ops;
33  bool copy;
34 };
35 
36 template <typename T>
37 Operation<T> *sum(std::vector<Operation<T> *> ops, bool copy=true);
38 
39 } // namespace op
40 } // namespace magmadnn
Tensor< T > * _eval(bool recompute=true)
Definition: sumop.cpp:37
Definition: addop.cpp:11
Tensor< T > * _grad(Operation< T > *consumer, Operation< T > *var, Tensor< T > *grad)
Definition: sumop.cpp:53
std::string to_string()
Definition: sumop.cpp:58
Definition: tensor.h:34
Definition: sumop.h:22
virtual Tensor< T > * grad(Operation< T > *consumer, Operation< T > *var, Tensor< T > *grad, bool recompute=true)
Definition: operation.h:93
Definition: operation.h:18
Variable< T > * var(std::string name, Tensor< T > *val)
Definition: variable.cpp:73