Logo ROOT   6.14/05
Reference Guide
List of all members | Public Types | Public Member Functions | Private Attributes | List of all members
TMVA::DNN::CNN::TConvLayer< Architecture_t > Class Template Reference

template<typename Architecture_t>
class TMVA::DNN::CNN::TConvLayer< Architecture_t >

Definition at line 43 of file ConvLayer.h.

Public Types

using Matrix_t = typename Architecture_t::Matrix_t
 
using Scalar_t = typename Architecture_t::Scalar_t
 

Public Member Functions

 TConvLayer (size_t BatchSize, size_t InputDepth, size_t InputHeight, size_t InputWidth, size_t Depth, size_t Height, size_t Width, size_t WeightsNRows, size_t WeightsNCols, size_t BiasesNRows, size_t BiasesNCols, size_t OutputNSlices, size_t OutputNRows, size_t OutputNCols, EInitialization Init, size_t FilterDepth, 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...
 
 TConvLayer (const TConvLayer &)
 Copy constructor. More...
 
 ~TConvLayer ()
 Destructor. More...
 
virtual void AddWeightsXMLTo (void *parent)
 Writes the information and the weights about the layer in an XML node. More...
 
void Backward (std::vector< Matrix_t > &gradients_backward, const std::vector< Matrix_t > &activations_backward, std::vector< Matrix_t > &inp1, std::vector< Matrix_t > &inp2)
 Compute weight, bias and activation gradients. More...
 
void Forward (std::vector< Matrix_t > &input, bool applyDropout=false)
 Computes activation of the layer for the given input. More...
 
EActivationFunction GetActivationFunction () const
 
const std::vector< Matrix_t > & GetDerivatives () const
 
std::vector< Matrix_t > & GetDerivatives ()
 
Matrix_tGetDerivativesAt (size_t i)
 
const Matrix_tGetDerivativesAt (size_t i) const
 
Scalar_t GetDropoutProbability () const
 
size_t GetFilterDepth () const
 Getters. More...
 
size_t GetFilterHeight () const
 
size_t GetFilterWidth () 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
 
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 (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...
 
 VGeneralLayer (const VGeneralLayer &)
 Copy Constructor. More...
 
virtual ~VGeneralLayer ()
 Virtual Destructor. More...
 
void CopyBiases (const std::vector< Matrix_t > &otherBiases)
 Copies the biases provided as an input. More...
 
void CopyWeights (const std::vector< Matrix_t > &otherWeights)
 Copies the weights provided as an input. More...
 
const std::vector< Matrix_t > & GetActivationGradients () const
 
std::vector< Matrix_t > & GetActivationGradients ()
 
Matrix_tGetActivationGradientsAt (size_t i)
 
const Matrix_tGetActivationGradientsAt (size_t i) const
 
size_t GetBatchSize () const
 Getters. More...
 
const 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)
 
size_t GetDepth () const
 
size_t GetHeight () const
 
EInitialization GetInitialization () const
 
size_t GetInputDepth () const
 
size_t GetInputHeight () const
 
size_t GetInputWidth () const
 
const std::vector< Matrix_t > & GetOutput () const
 
std::vector< Matrix_t > & GetOutput ()
 
Matrix_tGetOutputAt (size_t i)
 
const Matrix_tGetOutputAt (size_t i) const
 
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)
 
size_t GetWidth () const
 
void Initialize ()
 Initialize the weights and biases according to the given initialization method. More...
 
bool IsTraining () const
 
void ReadMatrixXML (void *node, const char *name, Matrix_t &matrix)
 
void SetBatchSize (size_t batchSize)
 Setters. More...
 
void SetDepth (size_t depth)
 
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

std::vector< int > fBackwardIndices
 Vector of indices used for a fast Im2Col in backward pass. More...
 
std::vector< Matrix_tfDerivatives
 First fDerivatives of the activations of this layer. More...
 
Scalar_t fDropoutProbability
 Probability that an input is active. More...
 
EActivationFunction fF
 Activation function of the layer. 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...
 
std::vector< int > fForwardIndices
 Vector of indices used for a fast Im2Col in forward pass. 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 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...
 
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...
 
Scalar_t fWeightDecay
 The weight decay. More...
 

Additional Inherited Members

- Protected Attributes inherited from TMVA::DNN::VGeneralLayer< Architecture_t >
std::vector< Matrix_tfActivationGradients
 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 indicatig the mode. More...
 
std::vector< Matrix_tfOutput
 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/CNN/ConvLayer.h>

Inheritance diagram for TMVA::DNN::CNN::TConvLayer< Architecture_t >:
[legend]

Member Typedef Documentation

◆ Matrix_t

template<typename Architecture_t>
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::Matrix_t = typename Architecture_t::Matrix_t

Definition at line 45 of file ConvLayer.h.

◆ Scalar_t

template<typename Architecture_t>
using TMVA::DNN::CNN::TConvLayer< Architecture_t >::Scalar_t = typename Architecture_t::Scalar_t

Definition at line 46 of file ConvLayer.h.

Constructor & Destructor Documentation

◆ TConvLayer() [1/3]

template<typename Architecture_t >
TMVA::DNN::CNN::TConvLayer< Architecture_t >::TConvLayer ( size_t  BatchSize,
size_t  InputDepth,
size_t  InputHeight,
size_t  InputWidth,
size_t  Depth,
size_t  Height,
size_t  Width,
size_t  WeightsNRows,
size_t  WeightsNCols,
size_t  BiasesNRows,
size_t  BiasesNCols,
size_t  OutputNSlices,
size_t  OutputNRows,
size_t  OutputNCols,
EInitialization  Init,
size_t  FilterDepth,
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 147 of file ConvLayer.h.

◆ TConvLayer() [2/3]

template<typename Architecture_t >
TMVA::DNN::CNN::TConvLayer< Architecture_t >::TConvLayer ( TConvLayer< Architecture_t > *  layer)

Copy the conv layer provided as a pointer.

Definition at line 170 of file ConvLayer.h.

◆ TConvLayer() [3/3]

template<typename Architecture_t >
TMVA::DNN::CNN::TConvLayer< Architecture_t >::TConvLayer ( const TConvLayer< Architecture_t > &  convLayer)

Copy constructor.

Definition at line 193 of file ConvLayer.h.

◆ ~TConvLayer()

template<typename Architecture_t >
TMVA::DNN::CNN::TConvLayer< Architecture_t >::~TConvLayer ( )

Destructor.

Definition at line 212 of file ConvLayer.h.

Member Function Documentation

◆ AddWeightsXMLTo()

template<typename Architecture_t >
void TMVA::DNN::CNN::TConvLayer< 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 321 of file ConvLayer.h.

◆ Backward()

template<typename Architecture_t >
auto TMVA::DNN::CNN::TConvLayer< Architecture_t >::Backward ( std::vector< Matrix_t > &  gradients_backward,
const std::vector< Matrix_t > &  activations_backward,
std::vector< Matrix_t > &  inp1,
std::vector< Matrix_t > &  inp2 
)
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 284 of file ConvLayer.h.

◆ Forward()

template<typename Architecture_t >
auto TMVA::DNN::CNN::TConvLayer< Architecture_t >::Forward ( std::vector< Matrix_t > &  input,
bool  applyDropout = false 
)
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 218 of file ConvLayer.h.

◆ GetActivationFunction()

template<typename Architecture_t>
EActivationFunction TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetActivationFunction ( ) const
inline

Definition at line 137 of file ConvLayer.h.

◆ GetDerivatives() [1/2]

template<typename Architecture_t>
const std::vector<Matrix_t>& TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetDerivatives ( ) const
inline

Definition at line 131 of file ConvLayer.h.

◆ GetDerivatives() [2/2]

template<typename Architecture_t>
std::vector<Matrix_t>& TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetDerivatives ( )
inline

Definition at line 132 of file ConvLayer.h.

◆ GetDerivativesAt() [1/2]

template<typename Architecture_t>
Matrix_t& TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetDerivativesAt ( size_t  i)
inline

Definition at line 134 of file ConvLayer.h.

◆ GetDerivativesAt() [2/2]

template<typename Architecture_t>
const Matrix_t& TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetDerivativesAt ( size_t  i) const
inline

Definition at line 135 of file ConvLayer.h.

◆ GetDropoutProbability()

template<typename Architecture_t>
Scalar_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetDropoutProbability ( ) const
inline

Definition at line 129 of file ConvLayer.h.

◆ GetFilterDepth()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetFilterDepth ( ) const
inline

Getters.

Definition at line 116 of file ConvLayer.h.

◆ GetFilterHeight()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetFilterHeight ( ) const
inline

Definition at line 117 of file ConvLayer.h.

◆ GetFilterWidth()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetFilterWidth ( ) const
inline

Definition at line 118 of file ConvLayer.h.

◆ GetNLocalViewPixels()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetNLocalViewPixels ( ) const
inline

Definition at line 126 of file ConvLayer.h.

◆ GetNLocalViews()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetNLocalViews ( ) const
inline

Definition at line 127 of file ConvLayer.h.

◆ GetPaddingHeight()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetPaddingHeight ( ) const
inline

Definition at line 123 of file ConvLayer.h.

◆ GetPaddingWidth()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetPaddingWidth ( ) const
inline

Definition at line 124 of file ConvLayer.h.

◆ GetRegularization()

template<typename Architecture_t>
ERegularization TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetRegularization ( ) const
inline

Definition at line 138 of file ConvLayer.h.

◆ GetStrideCols()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetStrideCols ( ) const
inline

Definition at line 121 of file ConvLayer.h.

◆ GetStrideRows()

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetStrideRows ( ) const
inline

Definition at line 120 of file ConvLayer.h.

◆ GetWeightDecay()

template<typename Architecture_t>
Scalar_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::GetWeightDecay ( ) const
inline

Definition at line 139 of file ConvLayer.h.

◆ Print()

template<typename Architecture_t >
auto TMVA::DNN::CNN::TConvLayer< Architecture_t >::Print ( ) const
virtual

Prints the info about the layer.

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

Definition at line 301 of file ConvLayer.h.

◆ ReadWeightsFromXML()

template<typename Architecture_t >
void TMVA::DNN::CNN::TConvLayer< 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 346 of file ConvLayer.h.

Member Data Documentation

◆ fBackwardIndices

template<typename Architecture_t>
std::vector<int> TMVA::DNN::CNN::TConvLayer< Architecture_t >::fBackwardIndices
private

Vector of indices used for a fast Im2Col in backward pass.

Definition at line 67 of file ConvLayer.h.

◆ fDerivatives

template<typename Architecture_t>
std::vector<Matrix_t> TMVA::DNN::CNN::TConvLayer< Architecture_t >::fDerivatives
private

First fDerivatives of the activations of this layer.

Definition at line 64 of file ConvLayer.h.

◆ fDropoutProbability

template<typename Architecture_t>
Scalar_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fDropoutProbability
private

Probability that an input is active.

Definition at line 62 of file ConvLayer.h.

◆ fF

template<typename Architecture_t>
EActivationFunction TMVA::DNN::CNN::TConvLayer< Architecture_t >::fF
private

Activation function of the layer.

Definition at line 70 of file ConvLayer.h.

◆ fFilterDepth

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fFilterDepth
private

The depth of the filter.

Definition at line 49 of file ConvLayer.h.

◆ fFilterHeight

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fFilterHeight
private

The height of the filter.

Definition at line 50 of file ConvLayer.h.

◆ fFilterWidth

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fFilterWidth
private

The width of the filter.

Definition at line 51 of file ConvLayer.h.

◆ fForwardIndices

template<typename Architecture_t>
std::vector<int> TMVA::DNN::CNN::TConvLayer< Architecture_t >::fForwardIndices
private

Vector of indices used for a fast Im2Col in forward pass.

Definition at line 66 of file ConvLayer.h.

◆ fNLocalViewPixels

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fNLocalViewPixels
private

The number of pixels in one local image view.

Definition at line 59 of file ConvLayer.h.

◆ fNLocalViews

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fNLocalViews
private

The number of local views in one image.

Definition at line 60 of file ConvLayer.h.

◆ fPaddingHeight

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fPaddingHeight
private

The number of zero layers added top and bottom of the input.

Definition at line 56 of file ConvLayer.h.

◆ fPaddingWidth

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fPaddingWidth
private

The number of zero layers left and right of the input.

Definition at line 57 of file ConvLayer.h.

◆ fReg

template<typename Architecture_t>
ERegularization TMVA::DNN::CNN::TConvLayer< Architecture_t >::fReg
private

The regularization method.

Definition at line 71 of file ConvLayer.h.

◆ fStrideCols

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fStrideCols
private

The number of column pixels to slid the filter each step.

Definition at line 54 of file ConvLayer.h.

◆ fStrideRows

template<typename Architecture_t>
size_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fStrideRows
private

The number of row pixels to slid the filter each step.

Definition at line 53 of file ConvLayer.h.

◆ fWeightDecay

template<typename Architecture_t>
Scalar_t TMVA::DNN::CNN::TConvLayer< Architecture_t >::fWeightDecay
private

The weight decay.

Definition at line 72 of file ConvLayer.h.

Libraries for TMVA::DNN::CNN::TConvLayer< Architecture_t >:
[legend]

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