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 237 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 262 of file GeneralLayer.h.
TMVA::DNN::VGeneralLayer< Architecture_t >::VGeneralLayer | ( | VGeneralLayer< Architecture_t > * | layer | ) |
Copy the layer provided as a pointer.
Definition at line 293 of file GeneralLayer.h.
TMVA::DNN::VGeneralLayer< Architecture_t >::VGeneralLayer | ( | const VGeneralLayer< Architecture_t > & | layer | ) |
Copy Constructor.
Definition at line 334 of file GeneralLayer.h.
|
virtual |
Virtual Destructor.
Definition at line 386 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 >, TMVA::DNN::RNN::TBasicGRULayer< Architecture_t >, TMVA::DNN::RNN::TBasicLSTMLayer< 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 >, TMVA::DNN::RNN::TBasicGRULayer< Architecture_t >, TMVA::DNN::RNN::TBasicLSTMLayer< 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 466 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 476 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 >, TMVA::DNN::RNN::TBasicGRULayer< Architecture_t >, TMVA::DNN::RNN::TBasicLSTMLayer< Architecture_t >, and TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >.
|
inline |
Definition at line 198 of file GeneralLayer.h.
|
inline |
Definition at line 197 of file GeneralLayer.h.
|
inline |
Definition at line 203 of file GeneralLayer.h.
|
inline |
Definition at line 204 of file GeneralLayer.h.
|
inline |
Getters.
Definition at line 161 of file GeneralLayer.h.
|
inline |
Definition at line 177 of file GeneralLayer.h.
|
inline |
Definition at line 176 of file GeneralLayer.h.
|
inline |
Definition at line 180 of file GeneralLayer.h.
|
inline |
Definition at line 179 of file GeneralLayer.h.
|
inline |
Definition at line 189 of file GeneralLayer.h.
|
inline |
Definition at line 188 of file GeneralLayer.h.
|
inline |
Definition at line 192 of file GeneralLayer.h.
|
inline |
Definition at line 191 of file GeneralLayer.h.
|
inline |
Definition at line 165 of file GeneralLayer.h.
|
inlinevirtual |
Reimplemented in TMVA::DNN::TBatchNormLayer< Architecture_t >.
Definition at line 208 of file GeneralLayer.h.
|
inline |
Definition at line 166 of file GeneralLayer.h.
|
inline |
Definition at line 212 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 164 of file GeneralLayer.h.
|
inline |
Definition at line 195 of file GeneralLayer.h.
|
inline |
Definition at line 194 of file GeneralLayer.h.
|
inline |
Definition at line 200 of file GeneralLayer.h.
|
inline |
Definition at line 201 of file GeneralLayer.h.
|
inline |
Definition at line 183 of file GeneralLayer.h.
|
inline |
Definition at line 182 of file GeneralLayer.h.
|
inline |
Definition at line 186 of file GeneralLayer.h.
|
inline |
Definition at line 185 of file GeneralLayer.h.
|
inline |
Definition at line 171 of file GeneralLayer.h.
|
inline |
Definition at line 170 of file GeneralLayer.h.
|
inline |
Definition at line 174 of file GeneralLayer.h.
|
inline |
Definition at line 173 of file GeneralLayer.h.
|
inline |
Definition at line 167 of file GeneralLayer.h.
|
virtual |
Initialize the weights and biases according to the given initialization method.
Reimplemented in TMVA::DNN::TBatchNormLayer< Architecture_t >, TMVA::DNN::RNN::TBasicGRULayer< Architecture_t >, TMVA::DNN::RNN::TBasicLSTMLayer< Architecture_t >, and TMVA::DNN::RNN::TBasicRNNLayer< Architecture_t >.
Definition at line 393 of file GeneralLayer.h.
|
inline |
Definition at line 168 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 >, TMVA::DNN::RNN::TBasicGRULayer< Architecture_t >, TMVA::DNN::RNN::TBasicLSTMLayer< 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 542 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 >, TMVA::DNN::RNN::TBasicGRULayer< Architecture_t >, TMVA::DNN::RNN::TBasicLSTMLayer< 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 119 of file GeneralLayer.h.
|
inline |
Setters.
Definition at line 215 of file GeneralLayer.h.
|
inline |
Definition at line 219 of file GeneralLayer.h.
|
inlinevirtual |
Set Dropout probability.
Reimplemented for layesrs supporting droput
Reimplemented in TMVA::DNN::TDenseLayer< Architecture_t >.
Definition at line 158 of file GeneralLayer.h.
|
inlinevirtual |
Reimplemented in TMVA::DNN::TBatchNormLayer< Architecture_t >.
Definition at line 210 of file GeneralLayer.h.
|
inline |
Definition at line 220 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 218 of file GeneralLayer.h.
|
inline |
Definition at line 222 of file GeneralLayer.h.
|
inline |
Definition at line 221 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 408 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 426 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 446 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 436 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 416 of file GeneralLayer.h.
auto TMVA::DNN::VGeneralLayer< Architecture_t >::WriteMatrixToXML | ( | void * | node, |
const char * | name, | ||
const Matrix_t & | matrix | ||
) |
Definition at line 519 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 494 of file GeneralLayer.h.
|
protected |
Gradients w.r.t. the activations of this layer.
Definition at line 76 of file GeneralLayer.h.
|
protected |
Batch size used for training and evaluation.
Definition at line 57 of file GeneralLayer.h.
|
protected |
The biases associated to the layer.
Definition at line 70 of file GeneralLayer.h.
|
protected |
Gradients w.r.t. the bias values of the layer.
Definition at line 73 of file GeneralLayer.h.
|
protected |
The depth of the layer.
Definition at line 63 of file GeneralLayer.h.
|
protected |
The height of the layer.
Definition at line 64 of file GeneralLayer.h.
|
protected |
The initialization method.
Definition at line 78 of file GeneralLayer.h.
|
protected |
The depth of the previous layer or input.
Definition at line 59 of file GeneralLayer.h.
|
protected |
The height of the previous layer or input.
Definition at line 60 of file GeneralLayer.h.
|
protected |
The width of the previous layer or input.
Definition at line 61 of file GeneralLayer.h.
|
protected |
Flag indicating the mode.
Definition at line 67 of file GeneralLayer.h.
|
protected |
Activations of this layer.
Definition at line 75 of file GeneralLayer.h.
|
protected |
Gradients w.r.t. the weights of the layer.
Definition at line 72 of file GeneralLayer.h.
|
protected |
The weights associated to the layer.
Definition at line 69 of file GeneralLayer.h.
|
protected |
The width of this layer.
Definition at line 65 of file GeneralLayer.h.