Long Short-Term Memory operator.
Inference code generation for one-layer LSTM. Supports forward, reverse and bidirectional LSTM. See the ONNX documentation for details about the supported LSTM architectures.
Definition at line 23 of file ROperator_LSTM.hxx.
Public Member Functions | |
ROperator_LSTM () | |
Default constructor of ROperator_LSTM. | |
ROperator_LSTM (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 input_forget, size_t layout, std::string nameX, std::string nameW, std::string nameR, std::string nameB, std::string nameSequence_lens, std::string nameInitial_h, std::string nameInitial_c, std::string nameP, std::string nameY, std::string nameY_h, std::string nameY_c) | |
Constructor of ROperator_LSTM from the attributes. | |
std::string | Generate (std::string OpName) |
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 &model) |
Initialize the model. | |
std::vector< std::vector< size_t > > | ShapeInference (std::vector< std::vector< size_t > > input) |
Infers the shape of the output tensors. | |
std::vector< ETensorType > | TypeInference (std::vector< ETensorType > input) |
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 |
Sacling 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 | fAttrInputForget |
Forget gate. | |
size_t | fAttrLayout |
Data layout. | |
std::string | fNB |
Name of the bias. | |
std::string | fNInitial_c |
Name of the initial value of the cell states. | |
std::string | fNInitial_h |
Name of the initial value of the hidden states. | |
std::string | fNP |
Name of peepholes. | |
std::string | fNR |
Name of the recurrence. | |
std::string | fNSequence_lens |
Name of 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_c |
Name of the last sequence of the cell states. | |
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_c |
Shape of the initial value of the cell states. | |
std::vector< size_t > | fShapeInitial_h |
Shape of the initial value of the hidden states. | |
std::vector< size_t > | fShapeP |
Shape of the peepholes. | |
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_c |
Shape of the last sequence of the cell states. | |
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_LSTM.hxx>
|
inline |
Default constructor of ROperator_LSTM.
Definition at line 62 of file ROperator_LSTM.hxx.
|
inline |
Constructor of ROperator_LSTM from the attributes.
activation_alpha | scaling values used by some activation functions |
activation_beta | scaling values used by some activation functions |
activations | activation functions |
clip | clip threshold |
direction | direction of processing of the sequneces |
hidden_size | number of hidden layers |
input_forget | forget gate |
layout | data layout |
nameX | name of the input tensor |
nameW | name of the weight tensor |
nameR | name of the recurrence tensor |
nameB | name of the bias tensor |
nameSequence_lens | name of the length of the sequences |
nameInitial_h | name of the initial value of the hidden states |
nameInitial_c | name of the initial value of the cell states |
nameP | name of the peepholes tensor |
nameY | name of the output |
nameY_h | name of the last sequence of the output |
nameY_c | name of the last sequence of the cell states |
Definition at line 86 of file ROperator_LSTM.hxx.
|
virtual |
Generate the inference code.
OpName | name of the operator |
Implements TMVA::Experimental::SOFIE::ROperator.
Definition at line 283 of file ROperator_LSTM.icc.
|
virtual |
Generate the code for the Session internal data vectors.
opName | name of the operator |
Reimplemented from TMVA::Experimental::SOFIE::ROperator.
Definition at line 237 of file ROperator_LSTM.icc.
|
inlinevirtual |
Returns the blas routines needed to compile the generated code.
Reimplemented from TMVA::Experimental::SOFIE::ROperator.
Definition at line 147 of file ROperator_LSTM.hxx.
|
virtual |
Initialize the model.
model | Model |
Implements TMVA::Experimental::SOFIE::ROperator.
Definition at line 40 of file ROperator_LSTM.icc.
|
virtual |
Infers the shape of the output tensors.
input | shape of the input tensors |
Implements TMVA::Experimental::SOFIE::ROperator.
Definition at line 16 of file ROperator_LSTM.icc.
|
virtual |
Infers the type of the output tensors.
input | type of the input tensors |
Implements TMVA::Experimental::SOFIE::ROperator.
Definition at line 9 of file ROperator_LSTM.icc.
|
private |
Sacling values used by some activation functions.
Definition at line 25 of file ROperator_LSTM.hxx.
|
private |
Scaling values used by some activation functions.
Definition at line 26 of file ROperator_LSTM.hxx.
|
private |
Activation functions.
Definition at line 27 of file ROperator_LSTM.hxx.
|
private |
Clip threshold.
Definition at line 28 of file ROperator_LSTM.hxx.
|
private |
Direction of processing.
Definition at line 29 of file ROperator_LSTM.hxx.
|
private |
Number of the hidden layers.
Definition at line 30 of file ROperator_LSTM.hxx.
|
private |
Forget gate.
Definition at line 31 of file ROperator_LSTM.hxx.
|
private |
Data layout.
Definition at line 32 of file ROperator_LSTM.hxx.
|
private |
Name of the bias.
Definition at line 37 of file ROperator_LSTM.hxx.
|
private |
Name of the initial value of the cell states.
Definition at line 40 of file ROperator_LSTM.hxx.
|
private |
Name of the initial value of the hidden states.
Definition at line 39 of file ROperator_LSTM.hxx.
|
private |
Name of peepholes.
Definition at line 41 of file ROperator_LSTM.hxx.
|
private |
Name of the recurrence.
Definition at line 36 of file ROperator_LSTM.hxx.
|
private |
Name of length of the sequences.
Definition at line 38 of file ROperator_LSTM.hxx.
|
private |
Name of the weights.
Definition at line 35 of file ROperator_LSTM.hxx.
|
private |
Name of the input.
Definition at line 34 of file ROperator_LSTM.hxx.
|
private |
Name of the output.
Definition at line 42 of file ROperator_LSTM.hxx.
|
private |
Name of the last sequence of the cell states.
Definition at line 44 of file ROperator_LSTM.hxx.
|
private |
Name of the last sequence of the output.
Definition at line 43 of file ROperator_LSTM.hxx.
|
private |
Shape of the bias.
Definition at line 49 of file ROperator_LSTM.hxx.
|
private |
Shape of the initial value of the cell states.
Definition at line 52 of file ROperator_LSTM.hxx.
|
private |
Shape of the initial value of the hidden states.
Definition at line 51 of file ROperator_LSTM.hxx.
|
private |
Shape of the peepholes.
Definition at line 53 of file ROperator_LSTM.hxx.
|
private |
Shape of the recurrence.
Definition at line 48 of file ROperator_LSTM.hxx.
|
private |
Shape of the length of the sequences.
Definition at line 50 of file ROperator_LSTM.hxx.
|
private |
Shape of the weights.
Definition at line 47 of file ROperator_LSTM.hxx.
|
private |
Shape of the input.
Definition at line 46 of file ROperator_LSTM.hxx.
|
private |
Shape of the output.
Definition at line 54 of file ROperator_LSTM.hxx.
|
private |
Shape of the last sequence of the cell states.
Definition at line 56 of file ROperator_LSTM.hxx.
|
private |
Shape of the last sequence of the output.
Definition at line 55 of file ROperator_LSTM.hxx.
|
private |
Type of the tensors.
Definition at line 58 of file ROperator_LSTM.hxx.