Logo ROOT  
Reference Guide
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 = typename Architecture_t::Tensor_t
 

Public Member Functions

 TBasicRNNLayer (const TBasicRNNLayer &)
 Copy Constructor. More...
 
 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...
 
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)
 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
 
Tensor_tGetDerivatives ()
 
const Tensor_tGetDerivatives () 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 (const VGeneralLayer &)
 Copy 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, 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...
 
virtual ~VGeneralLayer ()
 Virtual Destructor. More...
 
virtual void AddWeightsXMLTo (void *parent)=0
 Writes the information and the weights about the layer in an XML node. More...
 
virtual void Backward (Tensor_t &gradients_backward, const Tensor_t &activations_backward)=0
 Backpropagates the error. More...
 
void CopyBiases (const std::vector< Matrix_t > &otherBiases)
 Copies the biases provided as an input. More...
 
template<typename Arch >
void CopyParameters (const VGeneralLayer< Arch > &layer)
 Copy all trainable weight and biases from another equivalent layer but with different architecture The function can copy also extra parameters in addition to weights and biases if they are return by the function GetExtraLayerParameters. More...
 
void CopyWeights (const std::vector< Matrix_t > &otherWeights)
 Copies the weights provided as an input. More...
 
virtual void Forward (Tensor_t &input, bool applyDropout=false)=0
 Computes activation of the layer for the given input. More...
 
Tensor_tGetActivationGradients ()
 
const Tensor_tGetActivationGradients () const
 
Matrix_t GetActivationGradientsAt (size_t i)
 
const Matrix_tGetActivationGradientsAt (size_t i) const
 
size_t GetBatchSize () const
 Getters. More...
 
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) const
 
size_t GetDepth () const
 
virtual std::vector< Matrix_tGetExtraLayerParameters () const
 
size_t GetHeight () const
 
EInitialization GetInitialization () const
 
size_t GetInputDepth () const
 
size_t GetInputHeight () const
 
size_t GetInputWidth () const
 
Tensor_tGetOutput ()
 
const Tensor_tGetOutput () const
 
Matrix_t GetOutputAt (size_t i)
 
const Matrix_tGetOutputAt (size_t i) 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) const
 
size_t GetWidth () const
 
virtual void Initialize ()
 Initialize the weights and biases according to the given initialization method. More...
 
bool IsTraining () const
 
virtual void Print () const =0
 Prints the info about the layer. More...
 
void ReadMatrixXML (void *node, const char *name, Matrix_t &matrix)
 
virtual void ReadWeightsFromXML (void *parent)=0
 Read the information and the weights about the layer from XML node. More...
 
virtual void ResetTraining ()
 Reset some training flags after a loop on all batches Some layer (e.g. More...
 
void SetBatchSize (size_t batchSize)
 Setters. More...
 
void SetDepth (size_t depth)
 
virtual void SetDropoutProbability (Scalar_t)
 Set Dropout probability. More...
 
virtual void SetExtraLayerParameters (const std::vector< Matrix_t > &)
 
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

Architecture_t::ActivationDescriptor_t fActivationDesc
 
Matrix_tfBiases
 Biases. More...
 
Matrix_tfBiasGradients
 Gradients w.r.t. the bias values. More...
 
Tensor_t fDerivatives
 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 >
Tensor_t fActivationGradients
 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 indicating the mode. More...
 
Tensor_t fOutput
 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 61 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 62 of file RNNLayer.h.

◆ Tensor_t

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

Definition at line 60 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 166 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 191 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 412 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 
)
inlinevirtual

Backpropagates the error.

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

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

Definition at line 304 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 400 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 281 of file RNNLayer.h.

◆ Forward()

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

Compute and return the next state with given input matrix.

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

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 151 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 152 of file RNNLayer.h.

◆ GetBiasStateGradients() [1/2]

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

Definition at line 153 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 154 of file RNNLayer.h.

◆ GetDerivatives() [1/2]

template<typename Architecture_t >
Tensor_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 Tensor_t & TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::GetDerivatives ( ) const
inline

Definition at line 147 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 155 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 156 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 157 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 158 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 218 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
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 432 of file RNNLayer.h.

◆ Update()

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

Member Data Documentation

◆ fActivationDesc

template<typename Architecture_t >
Architecture_t::ActivationDescriptor_t TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >::fActivationDesc
private

Definition at line 82 of file RNNLayer.h.

◆ 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 >
Tensor_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.


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