Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TMVA::Experimental::SOFIE::ROperator_GRU< T > Class Template Referencefinal

template<typename T>
class TMVA::Experimental::SOFIE::ROperator_GRU< T >

Gated Recurrent Unit operator.

Inference code generation for one-layer GRU. Supports forward, reverse and bidirectional GRU. See the ONNX documentation for details about the supported GRU architectures.

Definition at line 24 of file ROperator_GRU.hxx.

Public Member Functions

 ROperator_GRU ()
 Default constructor of ROperator_GRU.
 
 ROperator_GRU (std::vector< float > activation_alpha, std::vector< float > activation_beta, std::vector< std::string > activations, float clip, std::string direction, size_t hidden_size, size_t layout, size_t linear_before_reset, std::string nameX, std::string nameW, std::string nameR, std::string nameB, std::string nameSequence_lens, std::string nameInitial_h, std::string nameY, std::string nameY_h)
 Constructor of ROperator_GRU from the attributes.
 
std::string Generate (std::string)
 Generate the inference code.
 
std::string GenerateSessionMembersCode (std::string opName)
 Generate the code for the Session internal data vectors.
 
std::vector< std::string > GetBlasRoutines ()
 Returns the blas routines needed to compile the generated code.
 
void Initialize (RModel &)
 Initialize the model.
 
std::vector< std::vector< size_t > > ShapeInference (std::vector< std::vector< size_t > >)
 Infers the shape of the output tensors.
 
std::vector< ETensorTypeTypeInference (std::vector< ETensorType >)
 Infers the type of the output tensors.
 
- Public Member Functions inherited from TMVA::Experimental::SOFIE::ROperator
virtual ~ROperator ()
 
virtual std::string GenerateInitCode ()
 
virtual std::vector< std::string > GetStdLibs ()
 
virtual std::string Header ()
 

Private Attributes

std::vector< float > fAttrActivationAlpha
 Scaling values used by some activation functions.
 
std::vector< float > fAttrActivationBeta
 Scaling values used by some activation functions.
 
std::vector< std::string > fAttrActivations
 Activation functions.
 
float fAttrClip
 Clip threshold.
 
std::string fAttrDirection
 Direction of processing.
 
size_t fAttrHiddenSize
 Number of the hidden layers.
 
size_t fAttrLayout
 Data layout.
 
size_t fAttrLinearBeforeReset
 Linear layer before the reset gate.
 
std::string fNB
 Name of the bias.
 
std::string fNInitial_h
 Name of the initial value of the hidden states.
 
std::string fNR
 Name of the recurrence.
 
std::string fNSequence_lens
 Name of the length of the sequences.
 
std::string fNW
 Name of the weights.
 
std::string fNX
 Name of the input.
 
std::string fNY
 Name of the output.
 
std::string fNY_h
 Name of the last sequence of the output.
 
std::vector< size_t > fShapeB
 Shape of the bias.
 
std::vector< size_t > fShapeInitial_h
 Shape of the initial value of hidden states.
 
std::vector< size_t > fShapeR
 Shape of the recurrence.
 
std::vector< size_t > fShapeSequence_lens
 Shape of the length of the sequences.
 
std::vector< size_t > fShapeW
 Shape of the weights.
 
std::vector< size_t > fShapeX
 Shape of the input.
 
std::vector< size_t > fShapeY
 Shape of the output.
 
std::vector< size_t > fShapeY_h
 Shape of the last sequence of the output.
 
std::string fType
 Type of the tensors.
 

Additional Inherited Members

- Protected Attributes inherited from TMVA::Experimental::SOFIE::ROperator
bool fIsOutputConstant = false
 flag to identify if operator has a constant output (no need to generate code)
 
bool fUseSession = false
 flag to identify if using the session class
 
const std::string SP = " "
 space used to correctly indent the generated C++ code
 

#include <TMVA/ROperator_GRU.hxx>

Inheritance diagram for TMVA::Experimental::SOFIE::ROperator_GRU< T >:
[legend]

Constructor & Destructor Documentation

◆ ROperator_GRU() [1/2]

template<typename T >
TMVA::Experimental::SOFIE::ROperator_GRU< T >::ROperator_GRU ( )
inline

Default constructor of ROperator_GRU.

Definition at line 57 of file ROperator_GRU.hxx.

◆ ROperator_GRU() [2/2]

template<typename T >
TMVA::Experimental::SOFIE::ROperator_GRU< T >::ROperator_GRU ( std::vector< float >  activation_alpha,
std::vector< float >  activation_beta,
std::vector< std::string >  activations,
float  clip,
std::string  direction,
size_t  hidden_size,
size_t  layout,
size_t  linear_before_reset,
std::string  nameX,
std::string  nameW,
std::string  nameR,
std::string  nameB,
std::string  nameSequence_lens,
std::string  nameInitial_h,
std::string  nameY,
std::string  nameY_h 
)
inline

Constructor of ROperator_GRU from the attributes.

Parameters
activation_alphascaling values used by some activation functions
activation_betascaling values used by some activation functions
activationsactivation functions
clipclip threshold
directiondirection of processing of the sequneces
hidden_sizenumber of hidden layers
layoutdata layout
linear_before_resetLinear layer before the reset gate
nameXname of the input tensor
nameWname of the weight tensor
nameRname of the recurrence tensor
nameBname of the bias tensor
nameSequence_lensname of the length of the sequences
nameInitial_hname of the initial value of the hidden states
nameYname of the output
nameY_hname of the last sequence of the output

Definition at line 78 of file ROperator_GRU.hxx.

Member Function Documentation

◆ Generate()

template<typename T >
auto TMVA::Experimental::SOFIE::ROperator_GRU< T >::Generate ( std::string  OpName)
virtual

Generate the inference code.

Parameters
OpNamename of the operator

Implements TMVA::Experimental::SOFIE::ROperator.

Definition at line 228 of file ROperator_GRU.icc.

◆ GenerateSessionMembersCode()

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::GenerateSessionMembersCode ( std::string  opName)
virtual

Generate the code for the Session internal data vectors.

Parameters
opNamename of the operator

Reimplemented from TMVA::Experimental::SOFIE::ROperator.

Definition at line 183 of file ROperator_GRU.icc.

◆ GetBlasRoutines()

template<typename T >
std::vector< std::string > TMVA::Experimental::SOFIE::ROperator_GRU< T >::GetBlasRoutines ( )
inlinevirtual

Returns the blas routines needed to compile the generated code.

Reimplemented from TMVA::Experimental::SOFIE::ROperator.

Definition at line 135 of file ROperator_GRU.hxx.

◆ Initialize()

template<typename T >
void TMVA::Experimental::SOFIE::ROperator_GRU< T >::Initialize ( RModel model)
virtual

Initialize the model.

Parameters
modelModel

Implements TMVA::Experimental::SOFIE::ROperator.

Definition at line 38 of file ROperator_GRU.icc.

◆ ShapeInference()

template<typename T >
auto TMVA::Experimental::SOFIE::ROperator_GRU< T >::ShapeInference ( std::vector< std::vector< size_t > >  input)
virtual

Infers the shape of the output tensors.

Parameters
inputshape of the input tensors

Implements TMVA::Experimental::SOFIE::ROperator.

Definition at line 16 of file ROperator_GRU.icc.

◆ TypeInference()

template<typename T >
auto TMVA::Experimental::SOFIE::ROperator_GRU< T >::TypeInference ( std::vector< ETensorType input)
virtual

Infers the type of the output tensors.

Parameters
inputtype of the input tensors

Implements TMVA::Experimental::SOFIE::ROperator.

Definition at line 9 of file ROperator_GRU.icc.

Member Data Documentation

◆ fAttrActivationAlpha

template<typename T >
std::vector<float> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrActivationAlpha
private

Scaling values used by some activation functions.

Definition at line 26 of file ROperator_GRU.hxx.

◆ fAttrActivationBeta

template<typename T >
std::vector<float> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrActivationBeta
private

Scaling values used by some activation functions.

Definition at line 27 of file ROperator_GRU.hxx.

◆ fAttrActivations

template<typename T >
std::vector<std::string> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrActivations
private

Activation functions.

Definition at line 28 of file ROperator_GRU.hxx.

◆ fAttrClip

template<typename T >
float TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrClip
private

Clip threshold.

Definition at line 29 of file ROperator_GRU.hxx.

◆ fAttrDirection

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrDirection
private

Direction of processing.

Definition at line 30 of file ROperator_GRU.hxx.

◆ fAttrHiddenSize

template<typename T >
size_t TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrHiddenSize
private

Number of the hidden layers.

Definition at line 31 of file ROperator_GRU.hxx.

◆ fAttrLayout

template<typename T >
size_t TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrLayout
private

Data layout.

Definition at line 32 of file ROperator_GRU.hxx.

◆ fAttrLinearBeforeReset

template<typename T >
size_t TMVA::Experimental::SOFIE::ROperator_GRU< T >::fAttrLinearBeforeReset
private

Linear layer before the reset gate.

Definition at line 33 of file ROperator_GRU.hxx.

◆ fNB

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNB
private

Name of the bias.

Definition at line 38 of file ROperator_GRU.hxx.

◆ fNInitial_h

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNInitial_h
private

Name of the initial value of the hidden states.

Definition at line 40 of file ROperator_GRU.hxx.

◆ fNR

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNR
private

Name of the recurrence.

Definition at line 37 of file ROperator_GRU.hxx.

◆ fNSequence_lens

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNSequence_lens
private

Name of the length of the sequences.

Definition at line 39 of file ROperator_GRU.hxx.

◆ fNW

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNW
private

Name of the weights.

Definition at line 36 of file ROperator_GRU.hxx.

◆ fNX

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNX
private

Name of the input.

Definition at line 35 of file ROperator_GRU.hxx.

◆ fNY

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNY
private

Name of the output.

Definition at line 41 of file ROperator_GRU.hxx.

◆ fNY_h

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fNY_h
private

Name of the last sequence of the output.

Definition at line 42 of file ROperator_GRU.hxx.

◆ fShapeB

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeB
private

Shape of the bias.

Definition at line 47 of file ROperator_GRU.hxx.

◆ fShapeInitial_h

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeInitial_h
private

Shape of the initial value of hidden states.

Definition at line 49 of file ROperator_GRU.hxx.

◆ fShapeR

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeR
private

Shape of the recurrence.

Definition at line 46 of file ROperator_GRU.hxx.

◆ fShapeSequence_lens

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeSequence_lens
private

Shape of the length of the sequences.

Definition at line 48 of file ROperator_GRU.hxx.

◆ fShapeW

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeW
private

Shape of the weights.

Definition at line 45 of file ROperator_GRU.hxx.

◆ fShapeX

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeX
private

Shape of the input.

Definition at line 44 of file ROperator_GRU.hxx.

◆ fShapeY

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeY
private

Shape of the output.

Definition at line 50 of file ROperator_GRU.hxx.

◆ fShapeY_h

template<typename T >
std::vector<size_t> TMVA::Experimental::SOFIE::ROperator_GRU< T >::fShapeY_h
private

Shape of the last sequence of the output.

Definition at line 51 of file ROperator_GRU.hxx.

◆ fType

template<typename T >
std::string TMVA::Experimental::SOFIE::ROperator_GRU< T >::fType
private

Type of the tensors.

Definition at line 53 of file ROperator_GRU.hxx.

  • tmva/sofie/inc/TMVA/ROperator_GRU.hxx
  • tmva/sofie/inc/TMVA/ROperator_GRU.icc