Recurrent Neural Network operator.
Inference code generation for one-layer vanilla RNN. Supports forward, reverse and bidirectional RNNs. See the ONNX documentation for details about the supported RNN architectures.
Definition at line 22 of file ROperator_RNN.hxx.
Public Member Functions | |
| ROperator_RNN () | |
| Default constructor of ROperator_RNN.   | |
| ROperator_RNN (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, 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_RNN from the attributes.   | |
| std::string | Generate (std::string OpName) | 
| Generates the inference code.   | |
| std::string | GenerateSessionMembersCode (std::string opName) | 
| 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 | 
| 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.   | |
| 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 the 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 | |
| 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_RNN.hxx>
      
  | 
  inline | 
Default constructor of ROperator_RNN.
Definition at line 54 of file ROperator_RNN.hxx.
      
  | 
  inline | 
Constructor of ROperator_RNN 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 | 
| 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 | 
| nameY | name of the output | 
| nameY_h | name of the last sequence of the output | 
Definition at line 74 of file ROperator_RNN.hxx.
      
  | 
  virtual | 
Generates the inference code.
| OpName | name of the operator | 
Implements TMVA::Experimental::SOFIE::ROperator.
Definition at line 221 of file ROperator_RNN.icc.
      
  | 
  virtual | 
Reimplemented from TMVA::Experimental::SOFIE::ROperator.
Definition at line 190 of file ROperator_RNN.icc.
      
  | 
  inlinevirtual | 
Returns the blas routines needed to compile the generated code.
Reimplemented from TMVA::Experimental::SOFIE::ROperator.
Definition at line 148 of file ROperator_RNN.hxx.
      
  | 
  virtual | 
Initialize the model.
| model | Model | 
Implements TMVA::Experimental::SOFIE::ROperator.
Definition at line 38 of file ROperator_RNN.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_RNN.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_RNN.icc.
      
  | 
  private | 
Scaling values used by some activation functions.
Definition at line 24 of file ROperator_RNN.hxx.
      
  | 
  private | 
Scaling values used by some activation functions.
Definition at line 25 of file ROperator_RNN.hxx.
      
  | 
  private | 
Activation functions.
Definition at line 26 of file ROperator_RNN.hxx.
      
  | 
  private | 
Clip threshold.
Definition at line 27 of file ROperator_RNN.hxx.
      
  | 
  private | 
Direction of processing.
Definition at line 28 of file ROperator_RNN.hxx.
      
  | 
  private | 
Number of the hidden layers.
Definition at line 29 of file ROperator_RNN.hxx.
      
  | 
  private | 
Data layout.
Definition at line 30 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the bias.
Definition at line 35 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the initial value of the hidden states.
Definition at line 37 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the recurrence.
Definition at line 34 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the length of the sequences.
Definition at line 36 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the weights.
Definition at line 33 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the input.
Definition at line 32 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the output.
Definition at line 38 of file ROperator_RNN.hxx.
      
  | 
  private | 
Name of the last sequence of the output.
Definition at line 39 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the bias.
Definition at line 44 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the initial value of the hidden states.
Definition at line 46 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the recurrence.
Definition at line 43 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the length of the sequences.
Definition at line 45 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the weights.
Definition at line 42 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the input.
Definition at line 41 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the output.
Definition at line 47 of file ROperator_RNN.hxx.
      
  | 
  private | 
Shape of the last sequence of the output.
Definition at line 48 of file ROperator_RNN.hxx.
      
  | 
  private | 
Type of the tensors.
Definition at line 50 of file ROperator_RNN.hxx.