OpenANN  1.1.0
An open source library for artificial neural networks.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
List of all members | Public Member Functions
OpenANN::Layer Class Referenceabstract

Interface that has to be implemented by all layers of a neural network that can be trained with backpropagation. More...

#include <Layer.h>

+ Inheritance diagram for OpenANN::Layer:

Public Member Functions

virtual ~Layer ()
 
virtual OutputInfo initialize (std::vector< double * > &parameterPointers, std::vector< double * > &parameterDerivativePointers)=0
 Fill in the parameter pointers and parameter derivative pointers. More...
 
virtual void initializeParameters ()=0
 Initialize the parameters. More...
 
virtual void updatedParameters ()=0
 Generate internal parameters from externally visible parameters. More...
 
virtual void forwardPropagate (Eigen::MatrixXd *x, Eigen::MatrixXd *&y, bool dropout, double *error=0)=0
 Forward propagation in this layer. More...
 
virtual void backpropagate (Eigen::MatrixXd *ein, Eigen::MatrixXd *&eout, bool backpropToPrevious)=0
 Backpropagation in this layer. More...
 
virtual Eigen::MatrixXd & getOutput ()=0
 Output after last forward propagation. More...
 
virtual Eigen::VectorXd getParameters ()=0
 Get the current values of parameters (weights, biases, ...). More...
 

Detailed Description

Interface that has to be implemented by all layers of a neural network that can be trained with backpropagation.

Constructor & Destructor Documentation

virtual OpenANN::Layer::~Layer ( )
inlinevirtual

Member Function Documentation

virtual void OpenANN::Layer::backpropagate ( Eigen::MatrixXd *  ein,
Eigen::MatrixXd *&  eout,
bool  backpropToPrevious 
)
pure virtual

Backpropagation in this layer.

Parameters
einpointer to error signal of the higher layer
eoutreturns a pointer to error signal of the layer (derivative of the error with respect to the input)
backpropToPreviousbackpropagate errors to previous layers

Implemented in OpenANN::SigmaPi, OpenANN::RBM, OpenANN::FullyConnected, OpenANN::IntrinsicPlasticity, OpenANN::Convolutional, OpenANN::Subsampling, OpenANN::LocalResponseNormalization, OpenANN::Compressed, OpenANN::SparseAutoEncoder, OpenANN::Extreme, OpenANN::AlphaBetaFilter, OpenANN::MaxPooling, OpenANN::Dropout, and OpenANN::Input.

virtual void OpenANN::Layer::forwardPropagate ( Eigen::MatrixXd *  x,
Eigen::MatrixXd *&  y,
bool  dropout,
double *  error = 0 
)
pure virtual

Forward propagation in this layer.

Parameters
xpointer to input of the layer (with bias)
yreturns a pointer to output of the layer
dropoutenable dropout for regularization
errorerror value, will be updated with regularization terms

Implemented in OpenANN::SigmaPi, OpenANN::RBM, OpenANN::FullyConnected, OpenANN::IntrinsicPlasticity, OpenANN::Convolutional, OpenANN::Subsampling, OpenANN::LocalResponseNormalization, OpenANN::Compressed, OpenANN::SparseAutoEncoder, OpenANN::Extreme, OpenANN::AlphaBetaFilter, OpenANN::MaxPooling, OpenANN::Dropout, and OpenANN::Input.

virtual Eigen::MatrixXd& OpenANN::Layer::getOutput ( )
pure virtual
virtual Eigen::VectorXd OpenANN::Layer::getParameters ( )
pure virtual
virtual OutputInfo OpenANN::Layer::initialize ( std::vector< double * > &  parameterPointers,
std::vector< double * > &  parameterDerivativePointers 
)
pure virtual

Fill in the parameter pointers and parameter derivative pointers.

Parameters
parameterPointerspointers to parameters
parameterDerivativePointerspointers to derivatives of parameters
Returns
information about the output of the layer

Implemented in OpenANN::RBM, OpenANN::FullyConnected, OpenANN::SigmaPi, OpenANN::SparseAutoEncoder, OpenANN::IntrinsicPlasticity, OpenANN::Convolutional, OpenANN::Subsampling, OpenANN::LocalResponseNormalization, OpenANN::Compressed, OpenANN::Extreme, OpenANN::AlphaBetaFilter, OpenANN::MaxPooling, OpenANN::Dropout, and OpenANN::Input.

virtual void OpenANN::Layer::initializeParameters ( )
pure virtual
virtual void OpenANN::Layer::updatedParameters ( )
pure virtual

The documentation for this class was generated from the following file: