Logo ROOT   6.14/05
Reference Guide
List of all members | Public Types | Public Member Functions | Private Attributes | List of all members
TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t > Class Template Reference

template<typename Architecture_t>
class TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >

Definition at line 55 of file RNNLayer.h.

Public Types

using Matrix_t = typename Architecture_t::Matrix_t
 
using Scalar_t = typename Architecture_t::Scalar_t
 
using Tensor_t = std::vector< Matrix_t >
 

Public Member Functions

 TBasicRNNLayer (size_t batchSize, size_t stateSize, size_t inputSize, size_t timeSteps, bool rememberState=false, DNN::EActivationFunction f=DNN::EActivationFunction::kTanh, bool training=true, DNN::EInitialization fA=DNN::EInitialization::kZero)
 Constructor. More...
 
 TBasicRNNLayer (const TBasicRNNLayer &)
 Copy Constructor. More...
 
virtual void AddWeightsXMLTo (void *parent)
 Writes the information and the weights about the layer in an XML node. More...
 
void Backward (Tensor_t &gradients_backward, const Tensor_t &activations_backward, std::vector< Matrix_t > &inp1, std::vector< Matrix_t > &inp2)
 Backpropagates the error. More...
 
Matrix_tCellBackward (Matrix_t &state_gradients_backward, const Matrix_t &precStateActivations, const Matrix_t &input, Matrix_t &input_gradient, Matrix_t &dF)
 Backward for a single time unit a the corresponding call to Forward(...). More...
 
void CellForward (const Matrix_t &input, Matrix_t &dF)
 Forward for a single cell (time unit) More...
 
void Forward (Tensor_t &input, bool isTraining=true)
 Compute and return the next state with given input matrix. More...
 
DNN::EActivationFunction GetActivationFunction () const
 
Matrix_tGetBiasesState ()
 
const Matrix_tGetBiasesState () const
 
Matrix_tGetBiasStateGradients ()
 
const Matrix_tGetBiasStateGradients () const
 
std::vector< Matrix_t > & GetDerivatives ()
 
const std::vector< Matrix_t > & GetDerivatives () const
 
Matrix_tGetDerivativesAt (size_t i)
 
const Matrix_tGetDerivativesAt (size_t i) const
 
size_t GetInputSize () const
 
Matrix_tGetState ()
 
const Matrix_tGetState () const
 
size_t GetStateSize () const
 
size_t GetTimeSteps () const
 Getters. More...
 
Matrix_tGetWeightInputGradients ()
 
const Matrix_tGetWeightInputGradients () const
 
Matrix_tGetWeightsInput ()
 
const Matrix_tGetWeightsInput () const
 
Matrix_tGetWeightsState ()
 
const Matrix_tGetWeightsState () const
 
Matrix_tGetWeightStateGradients ()
 
const Matrix_tGetWeightStateGradients () const
 
void InitState (DNN::EInitialization m=DNN::EInitialization::kZero)
 Initialize the weights according to the given initialization method. More...
 
bool IsRememberState () const
 
void Print () const
 Prints the info about the layer. More...
 
virtual void ReadWeightsFromXML (void *parent)
 Read the information and the weights about the layer from XML node. More...
 
void Update (const Scalar_t learningRate)
 
- Public Member Functions inherited from TMVA::DNN::VGeneralLayer< Architecture_t >
 VGeneralLayer (size_t BatchSize, size_t InputDepth, size_t InputHeight, size_t InputWidth, size_t Depth, size_t Height, size_t Width, size_t WeightsNSlices, size_t WeightsNRows, size_t WeightsNCols, size_t BiasesNSlices, size_t BiasesNRows, size_t BiasesNCols, size_t OutputNSlices, size_t OutputNRows, size_t OutputNCols, EInitialization Init)
 Constructor. More...
 
 VGeneralLayer (size_t BatchSize, size_t InputDepth, size_t InputHeight, size_t InputWidth, size_t Depth, size_t Height, size_t Width, size_t WeightsNSlices, std::vector< size_t > WeightsNRows, std::vector< size_t > WeightsNCols, size_t BiasesNSlices, std::vector< size_t > BiasesNRows, std::vector< size_t > BiasesNCols, size_t OutputNSlices, size_t OutputNRows, size_t OutputNCols, EInitialization Init)
 General Constructor with different weights dimension. More...
 
 VGeneralLayer (VGeneralLayer< Architecture_t > *layer)
 Copy the layer provided as a pointer. More...
 
 VGeneralLayer (const VGeneralLayer &)
 Copy Constructor. More...
 
virtual ~VGeneralLayer ()
 Virtual Destructor. More...
 
virtual void Backward (std::vector< Matrix_t > &gradients_backward, const std::vector< Matrix_t > &activations_backward, std::vector< Matrix_t > &inp1, std::vector< Matrix_t > &inp2)=0
 Backpropagates the error. More...
 
void CopyBiases (const std::vector< Matrix_t > &otherBiases)
 Copies the biases provided as an input. More...
 
void CopyWeights (const std::vector< Matrix_t > &otherWeights)
 Copies the weights provided as an input. More...
 
virtual void Forward (std::vector< Matrix_t > &input, bool applyDropout=false)=0
 Computes activation of the layer for the given input. More...
 
const std::vector< Matrix_t > & GetActivationGradients () const
 
std::vector< Matrix_t > & GetActivationGradients ()
 
Matrix_tGetActivationGradientsAt (size_t i)
 
const Matrix_tGetActivationGradientsAt (size_t i) const
 
size_t GetBatchSize () const
 Getters. More...
 
const std::vector< Matrix_t > & GetBiases () const
 
std::vector< Matrix_t > & GetBiases ()
 
const Matrix_tGetBiasesAt (size_t i) const
 
Matrix_tGetBiasesAt (size_t i)
 
const std::vector< Matrix_t > & GetBiasGradients () const
 
std::vector< Matrix_t > & GetBiasGradients ()
 
const Matrix_tGetBiasGradientsAt (size_t i) const
 
Matrix_tGetBiasGradientsAt (size_t i)
 
size_t GetDepth () const
 
size_t GetHeight () const
 
EInitialization GetInitialization () const
 
size_t GetInputDepth () const
 
size_t GetInputHeight () const
 
size_t GetInputWidth () const
 
const std::vector< Matrix_t > & GetOutput () const
 
std::vector< Matrix_t > & GetOutput ()
 
Matrix_tGetOutputAt (size_t i)
 
const Matrix_tGetOutputAt (size_t i) const
 
const std::vector< Matrix_t > & GetWeightGradients () const
 
std::vector< Matrix_t > & GetWeightGradients ()
 
const Matrix_tGetWeightGradientsAt (size_t i) const
 
Matrix_tGetWeightGradientsAt (size_t i)
 
const std::vector< Matrix_t > & GetWeights () const
 
std::vector< Matrix_t > & GetWeights ()
 
const Matrix_tGetWeightsAt (size_t i) const
 
Matrix_tGetWeightsAt (size_t i)
 
size_t GetWidth () const
 
void Initialize ()
 Initialize the weights and biases according to the given initialization method. More...
 
bool IsTraining () const
 
void ReadMatrixXML (void *node, const char *name, Matrix_t &matrix)
 
void SetBatchSize (size_t batchSize)
 Setters. More...
 
void SetDepth (size_t depth)
 
void SetHeight (size_t height)
 
void SetInputDepth (size_t inputDepth)
 
void SetInputHeight (size_t inputHeight)
 
void SetInputWidth (size_t inputWidth)
 
void SetIsTraining (bool isTraining)
 
void SetWidth (size_t width)
 
void Update (const Scalar_t learningRate)
 Updates the weights and biases, given the learning rate. More...
 
void UpdateBiases (const std::vector< Matrix_t > &biasGradients, const Scalar_t learningRate)
 Updates the biases, given the gradients and the learning rate. More...
 
void UpdateBiasGradients (const std::vector< Matrix_t > &biasGradients, const Scalar_t learningRate)
 Updates the bias gradients, given some other weight gradients and learning rate. More...
 
void UpdateWeightGradients (const std::vector< Matrix_t > &weightGradients, const Scalar_t learningRate)
 Updates the weight gradients, given some other weight gradients and learning rate. More...
 
void UpdateWeights (const std::vector< Matrix_t > &weightGradients, const Scalar_t learningRate)
 Updates the weights, given the gradients and the learning rate,. More...
 
void WriteMatrixToXML (void *node, const char *name, const Matrix_t &matrix)
 
void WriteTensorToXML (void *node, const char *name, const std::vector< Matrix_t > &tensor)
 helper functions for XML More...
 

Private Attributes

Matrix_tfBiases
 Biases. More...
 
Matrix_tfBiasGradients
 Gradients w.r.t. the bias values. More...
 
std::vector< Matrix_tfDerivatives
 First fDerivatives of the activations. More...
 
DNN::EActivationFunction fF
 Activation function of the hidden state. More...
 
bool fRememberState
 Remember state in next pass. More...
 
Matrix_t fState
 Hidden State. More...
 
size_t fStateSize
 Hidden state size of RNN. More...
 
size_t fTimeSteps
 Timesteps for RNN. More...
 
Matrix_tfWeightInputGradients
 Gradients w.r.t. the input weights. More...
 
Matrix_tfWeightsInput
 Input weights, fWeights[0]. More...
 
Matrix_tfWeightsState
 Prev state weights, fWeights[1]. More...
 
Matrix_tfWeightStateGradients
 Gradients w.r.t. the recurring weights. More...
 

Additional Inherited Members

- Protected Attributes inherited from TMVA::DNN::VGeneralLayer< Architecture_t >
std::vector< Matrix_tfActivationGradients
 Gradients w.r.t. the activations of this layer. More...
 
size_t fBatchSize
 Batch size used for training and evaluation. More...
 
std::vector< Matrix_tfBiases
 The biases associated to the layer. More...
 
std::vector< Matrix_tfBiasGradients
 Gradients w.r.t. the bias values of the layer. More...
 
size_t fDepth
 The depth of the layer. More...
 
size_t fHeight
 The height of the layer. More...
 
EInitialization fInit
 The initialization method. More...
 
size_t fInputDepth
 The depth of the previous layer or input. More...
 
size_t fInputHeight
 The height of the previous layer or input. More...
 
size_t fInputWidth
 The width of the previous layer or input. More...
 
bool fIsTraining
 Flag indicatig the mode. More...
 
std::vector< Matrix_tfOutput
 Activations of this layer. More...
 
std::vector< Matrix_tfWeightGradients
 Gradients w.r.t. the weights of the layer. More...
 
std::vector< Matrix_tfWeights
 The weights associated to the layer. More...
 
size_t fWidth
 The width of this layer. More...
 

#include <TMVA/DNN/RNN/RNNLayer.h>

Inheritance diagram for TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >:
[legend]

Member Typedef Documentation

◆ Matrix_t

template<typename Architecture_t>
using TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::Matrix_t = typename Architecture_t::Matrix_t

Definition at line 60 of file RNNLayer.h.

◆ Scalar_t

template<typename Architecture_t>
using TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::Scalar_t = typename Architecture_t::Scalar_t

Definition at line 61 of file RNNLayer.h.

◆ Tensor_t

template<typename Architecture_t>
using TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::Tensor_t = std::vector<Matrix_t>

Definition at line 62 of file RNNLayer.h.

Constructor & Destructor Documentation

◆ TBasicRNNLayer() [1/2]

template<typename Architecture_t >
TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::TBasicRNNLayer ( size_t  batchSize,
size_t  stateSize,
size_t  inputSize,
size_t  timeSteps,
bool  rememberState = false,
DNN::EActivationFunction  f = DNN::EActivationFunction::kTanh,
bool  training = true,
DNN::EInitialization  fA = DNN::EInitialization::kZero 
)

Constructor.

Definition at line 165 of file RNNLayer.h.

◆ TBasicRNNLayer() [2/2]

template<typename Architecture_t >
TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::TBasicRNNLayer ( const TBasicRNNLayer< Architecture_t > &  layer)

Copy Constructor.

Definition at line 192 of file RNNLayer.h.

Member Function Documentation

◆ AddWeightsXMLTo()

template<typename Architecture_t >
void TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::AddWeightsXMLTo ( void parent)
virtual

Writes the information and the weights about the layer in an XML node.

Implements TMVA::DNN::VGeneralLayer< Architecture_t >.

Definition at line 372 of file RNNLayer.h.

◆ Backward()

template<typename Architecture_t >
auto TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::Backward ( Tensor_t gradients_backward,
const Tensor_t activations_backward,
std::vector< Matrix_t > &  inp1,
std::vector< Matrix_t > &  inp2 
)
inline

Backpropagates the error.

Must only be called directly at the corresponding call to Forward(...).

Definition at line 294 of file RNNLayer.h.

◆ CellBackward()

template<typename Architecture_t >
auto TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::CellBackward ( Matrix_t state_gradients_backward,
const Matrix_t precStateActivations,
const Matrix_t input,
Matrix_t input_gradient,
Matrix_t dF 
)
inline

Backward for a single time unit a the corresponding call to Forward(...).

Definition at line 360 of file RNNLayer.h.

◆ CellForward()

template<typename Architecture_t >
auto TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::CellForward ( const Matrix_t input,
Matrix_t dF 
)
inline

Forward for a single cell (time unit)

Definition at line 278 of file RNNLayer.h.

◆ Forward()

template<typename Architecture_t >
auto TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::Forward ( Tensor_t input,
bool  isTraining = true 
)
inline

Compute and return the next state with given input matrix.

Definition at line 254 of file RNNLayer.h.

◆ GetActivationFunction()

template<typename Architecture_t>
DNN::EActivationFunction TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetActivationFunction ( ) const
inline

Definition at line 139 of file RNNLayer.h.

◆ GetBiasesState() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetBiasesState ( )
inline

Definition at line 150 of file RNNLayer.h.

◆ GetBiasesState() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetBiasesState ( ) const
inline

Definition at line 151 of file RNNLayer.h.

◆ GetBiasStateGradients() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetBiasStateGradients ( )
inline

Definition at line 152 of file RNNLayer.h.

◆ GetBiasStateGradients() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetBiasStateGradients ( ) const
inline

Definition at line 153 of file RNNLayer.h.

◆ GetDerivatives() [1/2]

template<typename Architecture_t>
std::vector<Matrix_t>& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetDerivatives ( )
inline

Definition at line 146 of file RNNLayer.h.

◆ GetDerivatives() [2/2]

template<typename Architecture_t>
const std::vector<Matrix_t>& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetDerivatives ( ) const
inline

Definition at line 147 of file RNNLayer.h.

◆ GetDerivativesAt() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetDerivativesAt ( size_t  i)
inline

Definition at line 148 of file RNNLayer.h.

◆ GetDerivativesAt() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetDerivativesAt ( size_t  i) const
inline

Definition at line 149 of file RNNLayer.h.

◆ GetInputSize()

template<typename Architecture_t>
size_t TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetInputSize ( ) const
inline

Definition at line 137 of file RNNLayer.h.

◆ GetState() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetState ( )
inline

Definition at line 140 of file RNNLayer.h.

◆ GetState() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetState ( ) const
inline

Definition at line 141 of file RNNLayer.h.

◆ GetStateSize()

template<typename Architecture_t>
size_t TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetStateSize ( ) const
inline

Definition at line 136 of file RNNLayer.h.

◆ GetTimeSteps()

template<typename Architecture_t>
size_t TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetTimeSteps ( ) const
inline

Getters.

Definition at line 135 of file RNNLayer.h.

◆ GetWeightInputGradients() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightInputGradients ( )
inline

Definition at line 154 of file RNNLayer.h.

◆ GetWeightInputGradients() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightInputGradients ( ) const
inline

Definition at line 155 of file RNNLayer.h.

◆ GetWeightsInput() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightsInput ( )
inline

Definition at line 142 of file RNNLayer.h.

◆ GetWeightsInput() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightsInput ( ) const
inline

Definition at line 143 of file RNNLayer.h.

◆ GetWeightsState() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightsState ( )
inline

Definition at line 144 of file RNNLayer.h.

◆ GetWeightsState() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightsState ( ) const
inline

Definition at line 145 of file RNNLayer.h.

◆ GetWeightStateGradients() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightStateGradients ( )
inline

Definition at line 156 of file RNNLayer.h.

◆ GetWeightStateGradients() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetWeightStateGradients ( ) const
inline

Definition at line 157 of file RNNLayer.h.

◆ InitState()

template<typename Architecture_t >
auto TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::InitState ( DNN::EInitialization  m = DNN::EInitialization::kZero)

Initialize the weights according to the given initialization method.

Initialize the state method.

Definition at line 220 of file RNNLayer.h.

◆ IsRememberState()

template<typename Architecture_t>
bool TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::IsRememberState ( ) const
inline

Definition at line 138 of file RNNLayer.h.

◆ Print()

template<typename Architecture_t >
auto TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::Print ( ) const
virtual

Prints the info about the layer.

Implements TMVA::DNN::VGeneralLayer< Architecture_t >.

Definition at line 227 of file RNNLayer.h.

◆ ReadWeightsFromXML()

template<typename Architecture_t >
void TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::ReadWeightsFromXML ( void parent)
virtual

Read the information and the weights about the layer from XML node.

Implements TMVA::DNN::VGeneralLayer< Architecture_t >.

Definition at line 392 of file RNNLayer.h.

◆ Update()

template<typename Architecture_t>
void TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::Update ( const Scalar_t  learningRate)

Member Data Documentation

◆ fBiases

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fBiases
private

Biases.

Definition at line 75 of file RNNLayer.h.

◆ fBiasGradients

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fBiasGradients
private

Gradients w.r.t. the bias values.

Definition at line 80 of file RNNLayer.h.

◆ fDerivatives

template<typename Architecture_t>
std::vector<Matrix_t> TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fDerivatives
private

First fDerivatives of the activations.

Definition at line 77 of file RNNLayer.h.

◆ fF

template<typename Architecture_t>
DNN::EActivationFunction TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fF
private

Activation function of the hidden state.

Definition at line 70 of file RNNLayer.h.

◆ fRememberState

template<typename Architecture_t>
bool TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fRememberState
private

Remember state in next pass.

Definition at line 68 of file RNNLayer.h.

◆ fState

template<typename Architecture_t>
Matrix_t TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fState
private

Hidden State.

Definition at line 72 of file RNNLayer.h.

◆ fStateSize

template<typename Architecture_t>
size_t TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fStateSize
private

Hidden state size of RNN.

Definition at line 67 of file RNNLayer.h.

◆ fTimeSteps

template<typename Architecture_t>
size_t TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fTimeSteps
private

Timesteps for RNN.

Definition at line 66 of file RNNLayer.h.

◆ fWeightInputGradients

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fWeightInputGradients
private

Gradients w.r.t. the input weights.

Definition at line 78 of file RNNLayer.h.

◆ fWeightsInput

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fWeightsInput
private

Input weights, fWeights[0].

Definition at line 73 of file RNNLayer.h.

◆ fWeightsState

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fWeightsState
private

Prev state weights, fWeights[1].

Definition at line 74 of file RNNLayer.h.

◆ fWeightStateGradients

template<typename Architecture_t>
Matrix_t& TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fWeightStateGradients
private

Gradients w.r.t. the recurring weights.

Definition at line 79 of file RNNLayer.h.

Libraries for TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >:
[legend]

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