OpenANN  1.1.0
An open source library for artificial neural networks.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Compressed.h
Go to the documentation of this file.
1 #ifndef OPENANN_LAYERS_COMPRESSED_H_
2 #define OPENANN_LAYERS_COMPRESSED_H_
3 
4 #include <OpenANN/layers/Layer.h>
7 
8 namespace OpenANN
9 {
10 
34 class Compressed : public Layer
35 {
36  int I, J, M;
37  bool bias;
39  double stdDev;
40  Eigen::MatrixXd W;
41  Eigen::MatrixXd Wd;
42  Eigen::MatrixXd phi;
43  Eigen::MatrixXd alpha;
44  Eigen::MatrixXd alphad;
45  Eigen::MatrixXd* x;
46  Eigen::MatrixXd a;
47  Eigen::MatrixXd y;
48  Eigen::MatrixXd yd;
49  Eigen::MatrixXd deltas;
50  Eigen::MatrixXd e;
51  Regularization regularization;
52 
53 public:
54  Compressed(OutputInfo info, int J, int M, bool bias, ActivationFunction act,
55  const std::string& compression, double stdDev,
56  Regularization regularization);
57  virtual OutputInfo initialize(std::vector<double*>& parameterPointers,
58  std::vector<double*>& parameterDerivativePointers);
59  virtual void initializeParameters();
60  virtual void updatedParameters();
61  virtual void forwardPropagate(Eigen::MatrixXd* x, Eigen::MatrixXd*& y,
62  bool dropout, double* error = 0);
63  virtual void backpropagate(Eigen::MatrixXd* ein, Eigen::MatrixXd*& eout,
64  bool backpropToPrevious);
65  virtual Eigen::MatrixXd& getOutput();
66  virtual Eigen::VectorXd getParameters();
67 };
68 
69 } // namespace OpenANN
70 
71 #endif // OPENANN_LAYERS_COMPRESSED_H_