RMSProp Optimizer class.
This class represents the RMSProp Optimizer with options for applying momentum.
Public Types | |
using | Matrix_t = typename Architecture_t::Matrix_t |
using | Scalar_t = typename Architecture_t::Scalar_t |
Public Types inherited from TMVA::DNN::VOptimizer< Architecture_t, VGeneralLayer< Architecture_t >, TDeepNet< Architecture_t, VGeneralLayer< Architecture_t > > > | |
using | Matrix_t = typename Architecture_t::Matrix_t |
using | Scalar_t = typename Architecture_t::Scalar_t |
Public Member Functions | |
TRMSProp (DeepNet_t &deepNet, Scalar_t learningRate=0.001, Scalar_t momentum=0.0, Scalar_t rho=0.9, Scalar_t epsilon=1e-7) | |
Constructor. More... | |
~TRMSProp ()=default | |
Destructor. More... | |
std::vector< std::vector< Matrix_t > > & | GetBiasUpdates () |
std::vector< Matrix_t > & | GetBiasUpdatesAt (size_t i) |
Scalar_t | GetEpsilon () const |
Scalar_t | GetMomentum () const |
Getters. More... | |
std::vector< std::vector< Matrix_t > > & | GetPastSquaredBiasGradients () |
std::vector< Matrix_t > & | GetPastSquaredBiasGradientsAt (size_t i) |
std::vector< std::vector< Matrix_t > > & | GetPastSquaredWeightGradients () |
std::vector< Matrix_t > & | GetPastSquaredWeightGradientsAt (size_t i) |
Scalar_t | GetRho () const |
std::vector< std::vector< Matrix_t > > & | GetWeightUpdates () |
std::vector< Matrix_t > & | GetWeightUpdatesAt (size_t i) |
Public Member Functions inherited from TMVA::DNN::VOptimizer< Architecture_t, VGeneralLayer< Architecture_t >, TDeepNet< Architecture_t, VGeneralLayer< Architecture_t > > > | |
VOptimizer (Scalar_t learningRate, TDeepNet< Architecture_t, VGeneralLayer< Architecture_t > > &deepNet) | |
Constructor. More... | |
virtual | ~VOptimizer ()=default |
Virtual Destructor. More... | |
size_t | GetGlobalStep () const |
VGeneralLayer< Architecture_t > * | GetLayerAt (size_t i) |
std::vector< VGeneralLayer< Architecture_t > * > & | GetLayers () |
Scalar_t | GetLearningRate () const |
Getters. More... | |
void | IncrementGlobalStep () |
Increments the global step. More... | |
void | SetLearningRate (size_t learningRate) |
Setters. More... | |
void | Step () |
Performs one step of optimization. More... | |
Protected Member Functions | |
void | UpdateBiases (size_t layerIndex, std::vector< Matrix_t > &biases, const std::vector< Matrix_t > &biasGradients) |
Update the biases, given the current bias gradients. More... | |
void | UpdateWeights (size_t layerIndex, std::vector< Matrix_t > &weights, const std::vector< Matrix_t > &weightGradients) |
Update the weights, given the current weight gradients. More... | |
virtual void | UpdateBiases (size_t layerIndex, std::vector< Matrix_t > &biases, const std::vector< Matrix_t > &biasGradients)=0 |
Update the biases, given the current bias gradients. More... | |
virtual void | UpdateWeights (size_t layerIndex, std::vector< Matrix_t > &weights, const std::vector< Matrix_t > &weightGradients)=0 |
Update the weights, given the current weight gradients. More... | |
Protected Attributes | |
std::vector< std::vector< Matrix_t > > | fBiasUpdates |
The accumulation of the past Biases for performing updates. More... | |
Scalar_t | fEpsilon |
The Smoothing term used to avoid division by zero. More... | |
Scalar_t | fMomentum |
The momentum used for training. More... | |
std::vector< std::vector< Matrix_t > > | fPastSquaredBiasGradients |
The sum of the square of the past bias gradients associated with the deep net. More... | |
std::vector< std::vector< Matrix_t > > | fPastSquaredWeightGradients |
The sum of the square of the past weight gradients associated with the deep net. More... | |
Scalar_t | fRho |
The Rho constant used by the optimizer. More... | |
std::vector< std::vector< Matrix_t > > | fWeightUpdates |
The accumulation of the past Weights for performing updates. More... | |
std::vector< std::vector< Matrix_t > > | fWorkBiasTensor1 |
working tensor used to keep a temporary copy of bias or bias gradients More... | |
std::vector< std::vector< Matrix_t > > | fWorkBiasTensor2 |
working tensor used to keep a temporary copy of bias or bias gradients More... | |
std::vector< std::vector< Matrix_t > > | fWorkWeightTensor1 |
working tensor used to keep a temporary copy of weights or weight gradients More... | |
std::vector< std::vector< Matrix_t > > | fWorkWeightTensor2 |
working tensor used to keep a temporary copy of weights or weight gradients More... | |
Protected Attributes inherited from TMVA::DNN::VOptimizer< Architecture_t, VGeneralLayer< Architecture_t >, TDeepNet< Architecture_t, VGeneralLayer< Architecture_t > > > | |
TDeepNet< Architecture_t, VGeneralLayer< Architecture_t > > & | fDeepNet |
The reference to the deep net. More... | |
size_t | fGlobalStep |
The current global step count during training. More... | |
Scalar_t | fLearningRate |
The learning rate used for training. More... | |
#include <TMVA/DNN/RMSProp.h>
using TMVA::DNN::TRMSProp< Architecture_t, Layer_t, DeepNet_t >::Matrix_t = typename Architecture_t::Matrix_t |
using TMVA::DNN::TRMSProp< Architecture_t, Layer_t, DeepNet_t >::Scalar_t = typename Architecture_t::Scalar_t |
|
default |
Destructor.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protectedvirtual |
Update the biases, given the current bias gradients.
|
protectedvirtual |
Update the weights, given the current weight gradients.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |