mlpack  3.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
LSTM< InputDataType, OutputDataType > Class Template Reference

Implementation of the LSTM module class. More...

Public Member Functions

 LSTM ()
 Create the LSTM object. More...
 
 LSTM (const size_t inSize, const size_t outSize, const size_t rho=std::numeric_limits< size_t >::max())
 Create the LSTM layer object using the specified parameters. More...
 
template<typename InputType , typename ErrorType , typename GradientType >
void Backward (const InputType &&input, ErrorType &&gy, GradientType &&g)
 Ordinary feed backward pass of a neural network, calculating the function f(x) by propagating x backwards trough f. More...
 
OutputDataType const & Delta () const
 Get the delta. More...
 
OutputDataType & Delta ()
 Modify the delta. More...
 
template<typename InputType , typename OutputType >
void Forward (InputType &&input, OutputType &&output)
 Ordinary feed-forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f. More...
 
template<typename InputType , typename OutputType >
void Forward (InputType &&input, OutputType &&output, OutputType &&cellState, bool useCellState=false)
 Ordinary feed-forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f. More...
 
template<typename InputType , typename ErrorType , typename GradientType >
void Gradient (InputType &&input, ErrorType &&error, GradientType &&gradient)
 
OutputDataType const & Gradient () const
 Get the gradient. More...
 
OutputDataType & Gradient ()
 Modify the gradient. More...
 
OutputDataType const & OutputParameter () const
 Get the output parameter. More...
 
OutputDataType & OutputParameter ()
 Modify the output parameter. More...
 
OutputDataType const & Parameters () const
 Get the parameters. More...
 
OutputDataType & Parameters ()
 Modify the parameters. More...
 
void Reset ()
 
void ResetCell (const size_t size)
 
size_t Rho () const
 Get the maximum number of steps to backpropagate through time (BPTT). More...
 
size_t & Rho ()
 Modify the maximum number of steps to backpropagate through time (BPTT). More...
 
template<typename Archive >
void serialize (Archive &ar, const unsigned int)
 Serialize the layer. More...
 

Detailed Description

template<typename InputDataType, typename OutputDataType>
class mlpack::ann::LSTM< InputDataType, OutputDataType >

Implementation of the LSTM module class.

The implementation corresponds to the following algorithm:

\begin{eqnarray} i &=& sigmoid(W \cdot x + W \cdot h + W \cdot c + b) \\ f &=& sigmoid(W \cdot x + W \cdot h + W \cdot c + b) \\ z &=& tanh(W \cdot x + W \cdot h + b) \\ c &=& f \cdot c + i \cdot z \\ o &=& sigmoid(W \cdot x + W \cdot h + W \cdot c + b) \\ h &=& o \cdot tanh(c) \end{eqnarray}

For more information, see the following.

* @article{Graves2013,
* author = {Alex Graves and Abdel{-}rahman Mohamed and Geoffrey E. Hinton},
* title = {Speech Recognition with Deep Recurrent Neural Networks},
* journal = CoRR},
* year = {2013},
* url = {http://arxiv.org/abs/1303.5778},
* }
*
See Also
FastLSTM for a faster LSTM version which combines the calculation of the input, forget, output gates and hidden state in a single step.
Template Parameters
InputDataTypeType of the input data (arma::colvec, arma::mat, arma::sp_mat or arma::cube).
OutputDataTypeType of the output data (arma::colvec, arma::mat, arma::sp_mat or arma::cube).

Definition at line 61 of file layer_types.hpp.

Constructor & Destructor Documentation

LSTM ( )

Create the LSTM object.

LSTM ( const size_t  inSize,
const size_t  outSize,
const size_t  rho = std::numeric_limits< size_t >::max() 
)

Create the LSTM layer object using the specified parameters.

Parameters
inSizeThe number of input units.
outSizeThe number of output units.
rhoMaximum number of steps to backpropagate through time (BPTT).

Member Function Documentation

void Backward ( const InputType &&  input,
ErrorType &&  gy,
GradientType &&  g 
)

Ordinary feed backward pass of a neural network, calculating the function f(x) by propagating x backwards trough f.

Using the results from the feed forward pass.

Parameters
inputThe propagated input activation.
gyThe backpropagated error.
gThe calculated gradient.
OutputDataType const& Delta ( ) const
inline

Get the delta.

Definition at line 155 of file lstm.hpp.

OutputDataType& Delta ( )
inline

Modify the delta.

Definition at line 157 of file lstm.hpp.

void Forward ( InputType &&  input,
OutputType &&  output 
)

Ordinary feed-forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f.

Parameters
inputInput data used for evaluating the specified function.
outputResulting output activation.
void Forward ( InputType &&  input,
OutputType &&  output,
OutputType &&  cellState,
bool  useCellState = false 
)

Ordinary feed-forward pass of a neural network, evaluating the function f(x) by propagating the activity forward through f.

Parameters
inputInput data used for evaluating the specified function.
outputResulting output activation.
cellStateCell state of the LSTM.
useCellStateUse the cellState passed in the LSTM cell.
void Gradient ( InputType &&  input,
ErrorType &&  error,
GradientType &&  gradient 
)
OutputDataType const& Gradient ( ) const
inline

Get the gradient.

Definition at line 160 of file lstm.hpp.

OutputDataType& Gradient ( )
inline

Modify the gradient.

Definition at line 162 of file lstm.hpp.

OutputDataType const& OutputParameter ( ) const
inline

Get the output parameter.

Definition at line 150 of file lstm.hpp.

OutputDataType& OutputParameter ( )
inline

Modify the output parameter.

Definition at line 152 of file lstm.hpp.

OutputDataType const& Parameters ( ) const
inline

Get the parameters.

Definition at line 145 of file lstm.hpp.

OutputDataType& Parameters ( )
inline

Modify the parameters.

Definition at line 147 of file lstm.hpp.

void Reset ( )
void ResetCell ( const size_t  size)
size_t Rho ( ) const
inline

Get the maximum number of steps to backpropagate through time (BPTT).

Definition at line 140 of file lstm.hpp.

size_t& Rho ( )
inline

Modify the maximum number of steps to backpropagate through time (BPTT).

Definition at line 142 of file lstm.hpp.

void serialize ( Archive &  ar,
const unsigned  int 
)

Serialize the layer.


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