Generic General Layer class.
This class represents the general class for all layers in the Deep Learning Module.
Definition at line 49 of file GeneralLayer.h.
Public Member Functions | |
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_t & | GetActivationGradients () |
const Tensor_t & | GetActivationGradients () const |
Matrix_t | GetActivationGradientsAt (size_t i) |
const Matrix_t & | GetActivationGradientsAt (size_t i) const |
size_t | GetBatchSize () const |
Getters. More... | |
std::vector< Matrix_t > & | GetBiases () |
const std::vector< Matrix_t > & | GetBiases () const |
Matrix_t & | GetBiasesAt (size_t i) |
const Matrix_t & | GetBiasesAt (size_t i) const |
std::vector< Matrix_t > & | GetBiasGradients () |
const std::vector< Matrix_t > & | GetBiasGradients () const |
Matrix_t & | GetBiasGradientsAt (size_t i) |
const Matrix_t & | GetBiasGradientsAt (size_t i) const |
size_t | GetDepth () const |
virtual std::vector< Matrix_t > | GetExtraLayerParameters () const |
size_t | GetHeight () const |
EInitialization | GetInitialization () const |
size_t | GetInputDepth () const |
size_t | GetInputHeight () const |
size_t | GetInputWidth () const |
Tensor_t & | GetOutput () |
const Tensor_t & | GetOutput () const |
Matrix_t | GetOutputAt (size_t i) |
const Matrix_t & | GetOutputAt (size_t i) const |
std::vector< Matrix_t > & | GetWeightGradients () |
const std::vector< Matrix_t > & | GetWeightGradients () const |
Matrix_t & | GetWeightGradientsAt (size_t i) |
const Matrix_t & | GetWeightGradientsAt (size_t i) const |
std::vector< Matrix_t > & | GetWeights () |
const std::vector< Matrix_t > & | GetWeights () const |
Matrix_t & | GetWeightsAt (size_t i) |
const Matrix_t & | GetWeightsAt (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... | |
Protected Attributes | |
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_t > | fBiases |
The biases associated to the layer. More... | |
std::vector< Matrix_t > | fBiasGradients |
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_t > | fWeightGradients |
Gradients w.r.t. the weights of the layer. More... | |
std::vector< Matrix_t > | fWeights |
The weights associated to the layer. More... | |
size_t | fWidth |
The width of this layer. More... | |
Private 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 |
#include <TMVA/DNN/GeneralLayer.h>
|
private |
Definition at line 52 of file GeneralLayer.h.
|
private |
Definition at line 53 of file GeneralLayer.h.
|
private |
Definition at line 51 of file GeneralLayer.h.
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.
Definition at line 236 of file GeneralLayer.h.
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, | ||
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.
Definition at line 261 of file GeneralLayer.h.
TMVA::DNN::VGeneralLayer< Architecture_t >::VGeneralLayer | ( | VGeneralLayer< Architecture_t > * | layer | ) |
Copy the layer provided as a pointer.
Definition at line 292 of file GeneralLayer.h.
TMVA::DNN::VGeneralLayer< Architecture_t >::VGeneralLayer | ( | const VGeneralLayer< Architecture_t > & | layer | ) |
Copy Constructor.
Definition at line 333 of file GeneralLayer.h.
|
virtual |
Virtual Destructor.
Definition at line 385 of file GeneralLayer.h.
|
pure virtual |
Writes the information and the weights about the layer in an XML node.
Implemented in TMVA::DNN::TBatchNormLayer< Architecture_t >, TMVA::DNN::CNN::TConvLayer< Architecture_t >, TMVA::DNN::CNN::TMaxPoolLayer< Architecture_t >, TMVA::DNN::TDenseLayer< Architecture_t >, TMVA::DNN::TReshapeLayer< Architecture_t >, and TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >.
|
pure virtual |
Backpropagates the error.
Must only be called directly at the corresponding call to Forward(...).
Implemented in TMVA::DNN::TBatchNormLayer< Architecture_t >, TMVA::DNN::CNN::TConvLayer< Architecture_t >, TMVA::DNN::CNN::TMaxPoolLayer< Architecture_t >, TMVA::DNN::TDenseLayer< Architecture_t >, TMVA::DNN::TReshapeLayer< Architecture_t >, and TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::CopyBiases | ( | const std::vector< Matrix_t > & | otherBiases | ) |
Copies the biases provided as an input.
Definition at line 465 of file GeneralLayer.h.
void TMVA::DNN::VGeneralLayer< Architecture_t >::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.
Definition at line 475 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::CopyWeights | ( | const std::vector< Matrix_t > & | otherWeights | ) |
|
pure virtual |
Computes activation of the layer for the given input.
The input must be in 3D tensor form with the different matrices corresponding to different events in the batch.
Implemented in TMVA::DNN::CNN::TConvLayer< Architecture_t >, TMVA::DNN::TDenseLayer< Architecture_t >, TMVA::DNN::TReshapeLayer< Architecture_t >, TMVA::DNN::CNN::TMaxPoolLayer< Architecture_t >, TMVA::DNN::TBatchNormLayer< Architecture_t >, and TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >.
|
inline |
Definition at line 197 of file GeneralLayer.h.
|
inline |
Definition at line 196 of file GeneralLayer.h.
|
inline |
Definition at line 202 of file GeneralLayer.h.
|
inline |
Definition at line 203 of file GeneralLayer.h.
|
inline |
Getters.
Definition at line 160 of file GeneralLayer.h.
|
inline |
Definition at line 176 of file GeneralLayer.h.
|
inline |
Definition at line 175 of file GeneralLayer.h.
|
inline |
Definition at line 179 of file GeneralLayer.h.
|
inline |
Definition at line 178 of file GeneralLayer.h.
|
inline |
Definition at line 188 of file GeneralLayer.h.
|
inline |
Definition at line 187 of file GeneralLayer.h.
|
inline |
Definition at line 191 of file GeneralLayer.h.
|
inline |
Definition at line 190 of file GeneralLayer.h.
|
inline |
Definition at line 164 of file GeneralLayer.h.
|
inlinevirtual |
Reimplemented in TMVA::DNN::TBatchNormLayer< Architecture_t >.
Definition at line 207 of file GeneralLayer.h.
|
inline |
Definition at line 165 of file GeneralLayer.h.
|
inline |
Definition at line 211 of file GeneralLayer.h.
|
inline |
Definition at line 161 of file GeneralLayer.h.
|
inline |
Definition at line 162 of file GeneralLayer.h.
|
inline |
Definition at line 163 of file GeneralLayer.h.
|
inline |
Definition at line 194 of file GeneralLayer.h.
|
inline |
Definition at line 193 of file GeneralLayer.h.
|
inline |
Definition at line 199 of file GeneralLayer.h.
|
inline |
Definition at line 200 of file GeneralLayer.h.
|
inline |
Definition at line 182 of file GeneralLayer.h.
|
inline |
Definition at line 181 of file GeneralLayer.h.
|
inline |
Definition at line 185 of file GeneralLayer.h.
|
inline |
Definition at line 184 of file GeneralLayer.h.
|
inline |
Definition at line 170 of file GeneralLayer.h.
|
inline |
Definition at line 169 of file GeneralLayer.h.
|
inline |
Definition at line 173 of file GeneralLayer.h.
|
inline |
Definition at line 172 of file GeneralLayer.h.
|
inline |
Definition at line 166 of file GeneralLayer.h.
|
virtual |
Initialize the weights and biases according to the given initialization method.
Reimplemented in TMVA::DNN::TBatchNormLayer< Architecture_t >.
Definition at line 392 of file GeneralLayer.h.
|
inline |
Definition at line 167 of file GeneralLayer.h.
|
pure virtual |
Prints the info about the layer.
Implemented in TMVA::DNN::TBatchNormLayer< Architecture_t >, TMVA::DNN::CNN::TConvLayer< Architecture_t >, TMVA::DNN::CNN::TMaxPoolLayer< Architecture_t >, TMVA::DNN::TDenseLayer< Architecture_t >, TMVA::DNN::TReshapeLayer< Architecture_t >, and TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::ReadMatrixXML | ( | void * | node, |
const char * | name, | ||
Matrix_t & | matrix | ||
) |
Definition at line 541 of file GeneralLayer.h.
|
pure virtual |
Read the information and the weights about the layer from XML node.
Implemented in TMVA::DNN::TBatchNormLayer< Architecture_t >, TMVA::DNN::CNN::TConvLayer< Architecture_t >, TMVA::DNN::CNN::TMaxPoolLayer< Architecture_t >, TMVA::DNN::TDenseLayer< Architecture_t >, TMVA::DNN::TReshapeLayer< Architecture_t >, and TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >.
|
inlinevirtual |
Reset some training flags after a loop on all batches Some layer (e.g.
batchnormalization) might need to implement the function in case some operations are needed after looping an all batches
Reimplemented in TMVA::DNN::TBatchNormLayer< Architecture_t >.
Definition at line 118 of file GeneralLayer.h.
|
inline |
Setters.
Definition at line 214 of file GeneralLayer.h.
|
inline |
Definition at line 218 of file GeneralLayer.h.
|
inlinevirtual |
Set Dropout probability.
Reimplemented for layesrs supporting droput
Reimplemented in TMVA::DNN::TDenseLayer< Architecture_t >.
Definition at line 157 of file GeneralLayer.h.
|
inlinevirtual |
Reimplemented in TMVA::DNN::TBatchNormLayer< Architecture_t >.
Definition at line 209 of file GeneralLayer.h.
|
inline |
Definition at line 219 of file GeneralLayer.h.
|
inline |
Definition at line 215 of file GeneralLayer.h.
|
inline |
Definition at line 216 of file GeneralLayer.h.
|
inline |
Definition at line 217 of file GeneralLayer.h.
|
inline |
Definition at line 221 of file GeneralLayer.h.
|
inline |
Definition at line 220 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::Update | ( | const Scalar_t | learningRate | ) |
Updates the weights and biases, given the learning rate.
Definition at line 407 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::UpdateBiases | ( | const std::vector< Matrix_t > & | biasGradients, |
const Scalar_t | learningRate | ||
) |
Updates the biases, given the gradients and the learning rate.
Definition at line 425 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::UpdateBiasGradients | ( | const std::vector< Matrix_t > & | biasGradients, |
const Scalar_t | learningRate | ||
) |
Updates the bias gradients, given some other weight gradients and learning rate.
Definition at line 445 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::UpdateWeightGradients | ( | const std::vector< Matrix_t > & | weightGradients, |
const Scalar_t | learningRate | ||
) |
Updates the weight gradients, given some other weight gradients and learning rate.
Definition at line 435 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::UpdateWeights | ( | const std::vector< Matrix_t > & | weightGradients, |
const Scalar_t | learningRate | ||
) |
Updates the weights, given the gradients and the learning rate,.
Definition at line 415 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::WriteMatrixToXML | ( | void * | node, |
const char * | name, | ||
const Matrix_t & | matrix | ||
) |
Definition at line 518 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::WriteTensorToXML | ( | void * | node, |
const char * | name, | ||
const std::vector< Matrix_t > & | tensor | ||
) |
helper functions for XML
Definition at line 493 of file GeneralLayer.h.
|
protected |
Gradients w.r.t. the activations of this layer.
Definition at line 75 of file GeneralLayer.h.
|
protected |
Batch size used for training and evaluation.
Definition at line 56 of file GeneralLayer.h.
|
protected |
The biases associated to the layer.
Definition at line 69 of file GeneralLayer.h.
|
protected |
Gradients w.r.t. the bias values of the layer.
Definition at line 72 of file GeneralLayer.h.
|
protected |
The depth of the layer.
Definition at line 62 of file GeneralLayer.h.
|
protected |
The height of the layer.
Definition at line 63 of file GeneralLayer.h.
|
protected |
The initialization method.
Definition at line 77 of file GeneralLayer.h.
|
protected |
The depth of the previous layer or input.
Definition at line 58 of file GeneralLayer.h.
|
protected |
The height of the previous layer or input.
Definition at line 59 of file GeneralLayer.h.
|
protected |
The width of the previous layer or input.
Definition at line 60 of file GeneralLayer.h.
|
protected |
Flag indicating the mode.
Definition at line 66 of file GeneralLayer.h.
|
protected |
Activations of this layer.
Definition at line 74 of file GeneralLayer.h.
|
protected |
Gradients w.r.t. the weights of the layer.
Definition at line 71 of file GeneralLayer.h.
|
protected |
The weights associated to the layer.
Definition at line 68 of file GeneralLayer.h.
|
protected |
The width of this layer.
Definition at line 64 of file GeneralLayer.h.