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