Definition at line 74 of file ConvLayer.h.
Public Types | |
using | AlgorithmBackward_t = typename Architecture_t::AlgorithmBackward_t |
using | AlgorithmDataType_t = typename Architecture_t::AlgorithmDataType_t |
using | AlgorithmForward_t = typename Architecture_t::AlgorithmForward_t |
using | AlgorithmHelper_t = typename Architecture_t::AlgorithmHelper_t |
using | HelperDescriptor_t = typename Architecture_t::ActivationDescriptor_t |
using | LayerDescriptor_t = typename Architecture_t::ConvolutionDescriptor_t |
using | Matrix_t = typename Architecture_t::Matrix_t |
using | ReduceTensorDescriptor_t = typename Architecture_t::ReduceTensorDescriptor_t |
using | Scalar_t = typename Architecture_t::Scalar_t |
using | Tensor_t = typename Architecture_t::Tensor_t |
using | WeightsDescriptor_t = typename Architecture_t::FilterDescriptor_t |
Public Member Functions | |
TConvLayer (const TConvLayer &) | |
Copy constructor. More... | |
TConvLayer (size_t BatchSize, size_t InputDepth, size_t InputHeight, size_t InputWidth, size_t Depth, EInitialization Init, size_t FilterHeight, size_t FilterWidth, size_t StrideRows, size_t StrideCols, size_t PaddingHeight, size_t PaddingWidth, Scalar_t DropoutProbability, EActivationFunction f, ERegularization Reg, Scalar_t WeightDecay) | |
Constructor. More... | |
TConvLayer (TConvLayer< Architecture_t > *layer) | |
Copy the conv layer provided as a pointer. More... | |
virtual | ~TConvLayer () |
Destructor. 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) |
Compute weight, bias and activation gradients. More... | |
void | Forward (Tensor_t &input, bool applyDropout=false) |
Computes activation of the layer for the given input. More... | |
EActivationFunction | GetActivationFunction () const |
TDescriptors * | GetDescriptors () |
const TDescriptors * | GetDescriptors () const |
Scalar_t | GetDropoutProbability () const |
size_t | GetFilterDepth () const |
Getters. More... | |
size_t | GetFilterHeight () const |
size_t | GetFilterWidth () const |
Tensor_t & | GetForwardMatrices () |
const Tensor_t & | GetForwardMatrices () const |
Tensor_t & | GetInputActivation () |
const Tensor_t & | GetInputActivation () const |
Matrix_t & | GetInputActivationAt (size_t i) |
const Matrix_t & | GetInputActivationAt (size_t i) const |
size_t | GetNLocalViewPixels () const |
size_t | GetNLocalViews () const |
size_t | GetPaddingHeight () const |
size_t | GetPaddingWidth () const |
ERegularization | GetRegularization () const |
size_t | GetStrideCols () const |
size_t | GetStrideRows () const |
Scalar_t | GetWeightDecay () const |
TWorkspace * | GetWorkspace () |
const TWorkspace * | GetWorkspace () 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... | |
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_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... | |
Static Public Member Functions | |
static size_t | calculateDimension (size_t imgDim, size_t fltDim, size_t padding, size_t stride) |
static size_t | calculateNLocalViewPixels (size_t depth, size_t height, size_t width) |
static size_t | calculateNLocalViews (size_t inputHeight, size_t filterHeight, size_t paddingHeight, size_t strideRows, size_t inputWidth, size_t filterWidth, size_t paddingWidth, size_t strideCols) |
Protected Attributes | |
TDescriptors * | fDescriptors = nullptr |
Keeps the convolution, activations and filter descriptors. More... | |
Scalar_t | fDropoutProbability |
Probability that an input is active. More... | |
size_t | fFilterDepth |
The depth of the filter. More... | |
size_t | fFilterHeight |
The height of the filter. More... | |
size_t | fFilterWidth |
The width of the filter. More... | |
size_t | fNLocalViewPixels |
The number of pixels in one local image view. More... | |
size_t | fNLocalViews |
The number of local views in one image. More... | |
size_t | fStrideCols |
The number of column pixels to slid the filter each step. More... | |
size_t | fStrideRows |
The number of row pixels to slid the filter each step. More... | |
TWorkspace * | fWorkspace = nullptr |
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_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 Member Functions | |
void | FreeWorkspace () |
void | InitializeDescriptors () |
void | InitializeWorkspace () |
void | ReleaseDescriptors () |
Private Attributes | |
std::vector< int > | fBackwardIndices |
Vector of indices used for a fast Im2Col in backward pass. More... | |
EActivationFunction | fF |
Activation function of the layer. More... | |
Tensor_t | fForwardTensor |
Cache tensor used for speeding-up the forward pass. More... | |
Tensor_t | fInputActivation |
First output of this layer after conv, before activation. More... | |
size_t | fPaddingHeight |
The number of zero layers added top and bottom of the input. More... | |
size_t | fPaddingWidth |
The number of zero layers left and right of the input. More... | |
ERegularization | fReg |
The regularization method. More... | |
Scalar_t | fWeightDecay |
The weight decay. More... | |
#include <TMVA/DNN/CNN/ConvLayer.h>
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::AlgorithmBackward_t = typename Architecture_t::AlgorithmBackward_t |
Definition at line 85 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::AlgorithmDataType_t = typename Architecture_t::AlgorithmDataType_t |
Definition at line 90 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::AlgorithmForward_t = typename Architecture_t::AlgorithmForward_t |
Definition at line 84 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::AlgorithmHelper_t = typename Architecture_t::AlgorithmHelper_t |
Definition at line 86 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::HelperDescriptor_t = typename Architecture_t::ActivationDescriptor_t |
Definition at line 82 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::LayerDescriptor_t = typename Architecture_t::ConvolutionDescriptor_t |
Definition at line 80 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::Matrix_t = typename Architecture_t::Matrix_t |
Definition at line 77 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::ReduceTensorDescriptor_t = typename Architecture_t::ReduceTensorDescriptor_t |
Definition at line 87 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::Scalar_t = typename Architecture_t::Scalar_t |
Definition at line 78 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::Tensor_t = typename Architecture_t::Tensor_t |
Definition at line 76 of file ConvLayer.h.
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::WeightsDescriptor_t = typename Architecture_t::FilterDescriptor_t |
Definition at line 81 of file ConvLayer.h.
TMVA::DNN::CNN::TConvLayer< Architecture_t >::TConvLayer | ( | size_t | BatchSize, |
size_t | InputDepth, | ||
size_t | InputHeight, | ||
size_t | InputWidth, | ||
size_t | Depth, | ||
EInitialization | Init, | ||
size_t | FilterHeight, | ||
size_t | FilterWidth, | ||
size_t | StrideRows, | ||
size_t | StrideCols, | ||
size_t | PaddingHeight, | ||
size_t | PaddingWidth, | ||
Scalar_t | DropoutProbability, | ||
EActivationFunction | f, | ||
ERegularization | Reg, | ||
Scalar_t | WeightDecay | ||
) |
Constructor.
Definition at line 221 of file ConvLayer.h.
TMVA::DNN::CNN::TConvLayer< Architecture_t >::TConvLayer | ( | TConvLayer< Architecture_t > * | layer | ) |
Copy the conv layer provided as a pointer.
Definition at line 256 of file ConvLayer.h.
TMVA::DNN::CNN::TConvLayer< Architecture_t >::TConvLayer | ( | const TConvLayer< Architecture_t > & | convLayer | ) |
Copy constructor.
Definition at line 275 of file ConvLayer.h.
|
virtual |
Destructor.
Definition at line 293 of file ConvLayer.h.
|
virtual |
Writes the information and the weights about the layer in an XML node.
Implements TMVA::DNN::VGeneralLayer< Architecture_t >.
Definition at line 368 of file ConvLayer.h.
|
virtual |
Compute weight, bias and activation gradients.
Uses the precomputed first partial derviatives of the activation function computed during forward propagation and modifies them. Must only be called directly at the corresponding call to Forward(...).
Implements TMVA::DNN::VGeneralLayer< Architecture_t >.
Definition at line 325 of file ConvLayer.h.
|
static |
Definition at line 401 of file ConvLayer.h.
|
inlinestatic |
Definition at line 96 of file ConvLayer.h.
|
static |
Definition at line 412 of file ConvLayer.h.
|
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. Computes activations as well as the first partial derivative of the activation function at those activations.
Implements TMVA::DNN::VGeneralLayer< Architecture_t >.
Definition at line 310 of file ConvLayer.h.
|
private |
Definition at line 444 of file ConvLayer.h.
|
inline |
Definition at line 203 of file ConvLayer.h.
|
inline |
Definition at line 208 of file ConvLayer.h.
|
inline |
Definition at line 209 of file ConvLayer.h.
|
inline |
Definition at line 192 of file ConvLayer.h.
|
inline |
Getters.
Definition at line 179 of file ConvLayer.h.
|
inline |
Definition at line 180 of file ConvLayer.h.
|
inline |
Definition at line 181 of file ConvLayer.h.
|
inline |
Definition at line 201 of file ConvLayer.h.
|
inline |
Definition at line 200 of file ConvLayer.h.
|
inline |
Definition at line 195 of file ConvLayer.h.
|
inline |
Definition at line 194 of file ConvLayer.h.
|
inline |
Definition at line 197 of file ConvLayer.h.
|
inline |
Definition at line 198 of file ConvLayer.h.
|
inline |
Definition at line 189 of file ConvLayer.h.
|
inline |
Definition at line 190 of file ConvLayer.h.
|
inline |
Definition at line 186 of file ConvLayer.h.
|
inline |
Definition at line 187 of file ConvLayer.h.
|
inline |
Definition at line 204 of file ConvLayer.h.
|
inline |
Definition at line 184 of file ConvLayer.h.
|
inline |
Definition at line 183 of file ConvLayer.h.
|
inline |
Definition at line 205 of file ConvLayer.h.
|
inline |
Definition at line 211 of file ConvLayer.h.
|
inline |
Definition at line 212 of file ConvLayer.h.
|
private |
Definition at line 424 of file ConvLayer.h.
|
private |
Definition at line 435 of file ConvLayer.h.
|
virtual |
Prints the info about the layer.
Implements TMVA::DNN::VGeneralLayer< Architecture_t >.
Definition at line 346 of file ConvLayer.h.
|
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 ConvLayer.h.
|
private |
Definition at line 429 of file ConvLayer.h.
|
private |
Vector of indices used for a fast Im2Col in backward pass.
Definition at line 124 of file ConvLayer.h.
|
protected |
Keeps the convolution, activations and filter descriptors.
Definition at line 115 of file ConvLayer.h.
|
protected |
Probability that an input is active.
Definition at line 113 of file ConvLayer.h.
|
private |
Activation function of the layer.
Definition at line 126 of file ConvLayer.h.
|
protected |
The depth of the filter.
Definition at line 103 of file ConvLayer.h.
|
protected |
The height of the filter.
Definition at line 104 of file ConvLayer.h.
|
protected |
The width of the filter.
Definition at line 105 of file ConvLayer.h.
|
private |
Cache tensor used for speeding-up the forward pass.
Definition at line 130 of file ConvLayer.h.
|
private |
First output of this layer after conv, before activation.
Definition at line 122 of file ConvLayer.h.
|
protected |
The number of pixels in one local image view.
Definition at line 110 of file ConvLayer.h.
|
protected |
The number of local views in one image.
Definition at line 111 of file ConvLayer.h.
|
private |
The number of zero layers added top and bottom of the input.
Definition at line 119 of file ConvLayer.h.
|
private |
The number of zero layers left and right of the input.
Definition at line 120 of file ConvLayer.h.
|
private |
The regularization method.
Definition at line 127 of file ConvLayer.h.
|
protected |
The number of column pixels to slid the filter each step.
Definition at line 108 of file ConvLayer.h.
|
protected |
The number of row pixels to slid the filter each step.
Definition at line 107 of file ConvLayer.h.
|
private |
The weight decay.
Definition at line 128 of file ConvLayer.h.
|
protected |
Definition at line 117 of file ConvLayer.h.