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 &) | 
| 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 | GenerateDeclCode () | 
| virtual std::string | GenerateInitCode () | 
| std::span< const std::string_view > | GetOpInputTensors () const | 
| std::span< const std::string_view > | GetOpOutputTensors () const | 
| 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 | |
| std::vector< std::string_view > | fInputTensorNames | 
| bool | fIsOutputConstant = false | 
| flag to identify if operator has a constant output (no need to generate code)   | |
| std::vector< std::string_view > | fOutputTensorNames | 
| 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 175 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 | 
Reimplemented from 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 | 
Reimplemented from 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.