OpenANN  1.1.0
An open source library for artificial neural networks.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AlphaBetaFilter.h
Go to the documentation of this file.
1 #ifndef OPENANN_LAYERS_ALPHA_BETA_FILTER_H_
2 #define OPENANN_LAYERS_ALPHA_BETA_FILTER_H_
3 
4 #include <OpenANN/layers/Layer.h>
6 
7 namespace OpenANN
8 {
9 
21 class AlphaBetaFilter : public Layer
22 {
23  int I, J;
24  double deltaT;
25  double stdDev;
26  Eigen::VectorXd gamma;
27  Eigen::VectorXd gammad;
28  Eigen::VectorXd alpha;
29  Eigen::VectorXd beta;
30  bool first;
31  Eigen::MatrixXd* x;
32  Eigen::MatrixXd y;
33 
34 public:
35  AlphaBetaFilter(OutputInfo info, double deltaT, double stdDev);
36  virtual OutputInfo initialize(std::vector<double*>& parameterPointers,
37  std::vector<double*>& parameterDerivativePointers);
38  virtual void initializeParameters();
39  virtual void updatedParameters();
40  virtual void reset();
41  virtual void forwardPropagate(Eigen::MatrixXd* x, Eigen::MatrixXd*& y,
42  bool dropout, double* error = 0);
43  virtual void backpropagate(Eigen::MatrixXd* ein, Eigen::MatrixXd*& eout,
44  bool backpropToPrevious);
45  virtual Eigen::MatrixXd& getOutput();
46  virtual Eigen::VectorXd getParameters();
47 };
48 
49 } // namespace OpenANN
50 
51 #endif // OPENANN_LAYERS_ALPHA_BETA_FILTER_H_