OpenANN  1.1.0
An open source library for artificial neural networks.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
LocalResponseNormalization.h
Go to the documentation of this file.
1 #ifndef OPENANN_LAYERS_LOCAL_RESPONSE_NORMALIZATION_H_
2 #define OPENANN_LAYERS_LOCAL_RESPONSE_NORMALIZATION_H_
3 
4 #include <OpenANN/layers/Layer.h>
5 
6 namespace OpenANN
7 {
8 
42 {
43  int I, fm, rows, cols;
44  int fmSize;
45  double k;
46  int n;
47  double alpha;
48  double beta;
49  Eigen::MatrixXd* x;
50  Eigen::MatrixXd denoms;
51  Eigen::MatrixXd y;
52  Eigen::MatrixXd etmp;
53  Eigen::MatrixXd e;
54 
55 public:
56  LocalResponseNormalization(OutputInfo info, double k, int n, double alpha,
57  double beta);
58  virtual OutputInfo initialize(std::vector<double*>& parameterPointers,
59  std::vector<double*>& parameterDerivativePointers);
60  virtual void initializeParameters() {}
61  virtual void updatedParameters() {}
62  virtual void forwardPropagate(Eigen::MatrixXd* x, Eigen::MatrixXd*& y,
63  bool dropout, double* error = 0);
64  virtual void backpropagate(Eigen::MatrixXd* ein, Eigen::MatrixXd*& eout,
65  bool backpropToPrevious);
66  virtual Eigen::MatrixXd& getOutput();
67  virtual Eigen::VectorXd getParameters();
68 };
69 
70 } // namespace OpenANN
71 
72 #endif // OPENANN_LAYERS_LOCAL_RESPONSE_NORMALIZATION_H_