Definition at line 12 of file RModel.hxx.
Public Member Functions | |
| RModel ()=default | |
| Default constructor. | |
| RModel (std::string function_name) | |
| RModel (std::string name, std::string parsedtime) | |
| void | AddAliasTensor (const std::string &tensor_name, const std::string &orig_tensor_name) |
| template<class T > | |
| void | AddConstantTensor (const std::string &name, const std::vector< size_t > &shape, const std::vector< T > &data) |
| template<class T > | |
| void | AddConstantTensor (const std::string &name, const std::vector< size_t > &shape, const T *data) |
| void | AddConstantTensor (std::string tensor_name, ETensorType type, std::vector< std::size_t > shape, std::shared_ptr< void > data) |
| void | AddDynamicTensor (std::string tensor_name, ETensorType type, std::vector< Dim > shape) |
| template<typename T > | |
| void | AddInitializedTensor (const std::string &tensor_name, const std::vector< std::size_t > &shape, T *raw_data) |
| void | AddInitializedTensor (std::string tensor_name, ETensorType type, std::vector< std::size_t > shape, std::shared_ptr< void > data) |
| void | AddInputTensorInfo (std::string input_name, ETensorType type, std::vector< Dim > shape) |
| void | AddInputTensorInfo (std::string input_name, ETensorType type, std::vector< size_t > shape) |
| void | AddInputTensorName (std::string name) |
| void | AddIntermediateTensor (std::string tensor_name, ETensorType type, std::vector< Dim > dim_shape) |
| void | AddIntermediateTensor (std::string tensor_name, ETensorType type, std::vector< std::size_t > shape) |
| void | AddOperator (std::unique_ptr< ROperator > op, int order_execution=-1) |
| void | AddOutputTensorNameList (std::vector< std::string > output_tensor_names) |
| void | AddShapeParam (const std::string &name, size_t def_value=0) |
| void | AddShapeTensor (const std::string &name, const std::vector< Dim > &shapeValues, bool scalar=false) |
| std::string | AllocateIntermediateMemory (std::span< const std::string_view > op_output_tensors) |
| void | CheckAndFlushIntermediateMemory (std::span< const std::string_view > op_output_tensors, const size_t &op_idx) |
| bool | CheckIfTensorAlreadyExist (std::string tensor_name) |
| ClassDefNV (RModel, 3) | |
| void | Generate (Options options=Options::kDefault, int batchSize=-1, int pos=0, bool verbose=false) |
| void | Generate (std::underlying_type_t< Options > options, int batchSize=-1, long pos=0, bool verbose=false) |
| std::string | GenerateInferSignature (bool isdecl=true) |
| size_t | GetConstantTensorSize () const |
| const std::vector< std::string > & | GetDimShapeNames () const |
| std::vector< Dim > | GetDimTensorShape (const std::string &name) const |
| std::vector< Dim > | GetDynamicTensorShape (const std::string &name) const |
| std::shared_ptr< void > | GetInitializedTensorData (std::string tensor_name) |
| const std::vector< std::string > & | GetInputTensorNames () const |
| size_t | GetIntermediateTensorSize () const |
| size_t | GetOtherTensorSize () const |
| const std::vector< std::string > & | GetOutputTensorNames () const |
| const std::vector< Dim > & | GetShapeTensorValues (const std::string &tensor_name) const |
| template<class T > | |
| std::vector< T > | GetTensorData (const std::string &name) |
| template<> | |
| std::vector< Dim > | GetTensorData (const std::string &name) |
| std::vector< size_t > | GetTensorShape (const std::string &name) const |
| ETensorType | GetTensorType (std::string name) const |
| size_t | GetWeightsTensorSize () const |
| void | HeadInitializedTensors (std::string name, int n_print=50) |
| void | Initialize (const std::map< std::string, size_t > &inputParams, bool verbose=false) |
| void | Initialize (int batchSize=-1, bool verbose=false) |
| void | InitializeSubGraph (std::shared_ptr< RModel > graph) |
| bool | IsAliasTensor (const std::string &name) const |
| check if a tensor is a alias tensor | |
| bool | IsConstantTensor (const std::string &name) const |
| bool | IsDimInputTensor (const std::string &name) const |
| bool | IsDynamicTensor (const std::string &name) const |
| bool | IsInitializedTensor (const std::string &name) const |
| bool | IsReadyInputTensor (const std::string &name) const |
| bool | IsShapeTensor (const std::string &name) const |
| check if a tensor is a shape tensor | |
| void | OutputGenerated (std::string filename="", bool append=false) |
| void | PrintDynamicTensors () const |
| void | PrintInitializedTensors () const |
| void | PrintIntermediateTensors () const |
| void | PrintOutputTensors () const |
| void | PrintRequiredInputTensors () const |
| void | PrintSummary () const |
| void | ReadInitializedTensorsFromFile (long) |
| void | SetFilename (std::string filename) |
| void | SetNotWritableInitializedTensor (const std::string &tensor_name) |
| void | SetOptimizationLevel (OptimizationLevel optim_level) |
| void | SetUseVDT (bool on) |
| void | UpdateInitializedTensor (std::string tensor_name, ETensorType type, std::vector< std::size_t > shape, std::shared_ptr< void > data) |
| void | UpdateOutputTensorList (std::vector< std::string > curr_output_tensor, std::vector< std::string > modify_output_tensor) |
| bool | UseSession () const |
| bool | UseVDT () const |
| int | Verbose () const |
| long | WriteInitializedTensorsToFile (std::string filename="") |
Public Member Functions inherited from TMVA::Experimental::SOFIE::RModel_Base | |
| RModel_Base ()=default | |
| Default constructor. | |
| RModel_Base (std::string function_name) | |
| RModel_Base (std::string name, std::string parsedtime) | |
| void | AddBlasRoutines (std::vector< std::string > routines) |
| void | AddNeededCustomHeader (std::string filename) |
| void | AddNeededStdLib (std::string libname) |
| void | GenerateHeaderInfo (std::string &hgname) |
| std::string | GetFilename () |
| const std::string & | GetName () const |
| void | OutputGenerated (std::string filename="", bool append=false) |
| void | PrintGenerated (std::ostream &os=std::cout) |
| std::string | ReturnGenerated () |
| void | SetFilename (std::string filename) |
Protected Member Functions | |
| std::vector< std::string > | CollectTensorMemberNames (const std::string &input) |
| Collects all identifiers starting with "tensor_" in the input code, provided that the occurrence is not immediately preceded by a character that is valid in a C++ identifier. | |
| void | GenerateDynamicTensorInfo () |
| void | GenerateInitializedTensorInfo () |
| void | GenerateIntermediateMemoryPool () |
| void | GenerateIntermediateTensorInfo () |
| void | GenerateOperatorDeclarations () |
| void | GenerateOutput () |
| void | GenerateRequiredInputTensorInfo () |
| To emit the dimensions of the input tensors as a data member of a session, which is helpful when validating the inference inputs. | |
| void | GenerateSessionCode () |
| bool | IsInputTensorShapeParam (std::string const &name) const |
| Check if a given parameter is used for the shape of an input tensor. | |
Private Attributes | |
| std::unordered_map< std::string, std::string > | fAliasTensors |
| int | fBatchSize = -1 |
| size_t | fConstantTensorSize = 0 |
| std::vector< std::string > | fDimShapeNames |
| std::unordered_map< std::string, DynamicTensorInfo > | fDynamicTensorInfos |
| std::unordered_map< std::string, InitializedTensor > | fInitializedTensors |
| std::unordered_map< std::string, InputTensorInfo > | fInputTensorInfos |
| std::vector< std::string > | fInputTensorNames |
| MemoryPoolInfo | fIntermediateMemoryInfo |
| ! intermediate memory info (transient) | |
| std::unordered_map< std::string_view, size_t > | fIntermediateTensorFrequencyLookup |
| ! lookup table for intermediate tensor frequency (transient) | |
| std::unordered_map< std::string, TensorInfo > | fIntermediateTensorInfos |
| bool | fIsInitialized = false |
| bool | fIsSubGraph = false |
| std::vector< std::unique_ptr< ROperator > > | fOperators |
| OptimizationLevel | fOptimizationLevel = OptimizationLevel::kExtended |
| size_t | fOtherTensorSize = 0 |
| std::vector< std::string > | fOutputTensorNames |
| RModel * | fParentGraph = nullptr |
| long | fReadPos = 0 |
| std::unordered_map< std::string, TensorInfo > | fReadyInputTensorInfos |
| std::unordered_map< std::string, std::string > | fShapeParams |
| std::unordered_map< std::string, std::pair< std::vector< Dim >, bool > > | fShapeTensors |
| std::vector< std::shared_ptr< RModel > > | fSubGraphs |
| ! sub-graph models (transient) | |
| bool | fUseVDT = false |
| int | fVerbose = 0 |
| size_t | fWeightsTensorSize = 0 |
Additional Inherited Members | |
Protected Attributes inherited from TMVA::Experimental::SOFIE::RModel_Base | |
| std::unordered_set< std::string > | fCustomOpHeaders |
| std::string | fFileName |
| std::string | fGC |
| bool | fIsGNN = false |
| bool | fIsGNNComponent = false |
| std::string | fName = "UnnamedModel" |
| std::unordered_set< std::string > | fNeededBlasRoutines |
| std::unordered_set< std::string > | fNeededStdLib = {"vector"} |
| std::string | fParseTime |
| bool | fUseSession = true |
| bool | fUseWeightFile = true |
| WeightFileType | fWeightFile = WeightFileType::Text |
#include <TMVA/RModel.hxx>
|
default |
Default constructor.
Needed to allow serialization of ROOT objects. See https://root.cern/manual/io_custom_classes/#restrictions-on-types-root-io-can-handle
|
inline |
Definition at line 54 of file RModel.hxx.
|
inline |
Definition at line 57 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::AddAliasTensor | ( | const std::string & | tensor_name, |
| const std::string & | orig_tensor_name ) |
Definition at line 233 of file RModel.cxx.
|
inline |
Definition at line 92 of file RModel.hxx.
|
inline |
Definition at line 84 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::AddConstantTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< std::size_t > | shape, | ||
| std::shared_ptr< void > | data ) |
Definition at line 215 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddDynamicTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< Dim > | shape ) |
Definition at line 301 of file RModel.cxx.
|
inline |
Definition at line 101 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::AddInitializedTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< std::size_t > | shape, | ||
| std::shared_ptr< void > | data ) |
Definition at line 205 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddInputTensorInfo | ( | std::string | input_name, |
| ETensorType | type, | ||
| std::vector< Dim > | shape ) |
Definition at line 155 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddInputTensorInfo | ( | std::string | input_name, |
| ETensorType | type, | ||
| std::vector< size_t > | shape ) |
Definition at line 165 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddInputTensorName | ( | std::string | name | ) |
Definition at line 174 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddIntermediateTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< Dim > | dim_shape ) |
Definition at line 284 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddIntermediateTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< std::size_t > | shape ) |
Definition at line 292 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddOperator | ( | std::unique_ptr< ROperator > | op, |
| int | order_execution = -1 ) |
Definition at line 178 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddOutputTensorNameList | ( | std::vector< std::string > | output_tensor_names | ) |
Definition at line 326 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddShapeParam | ( | const std::string & | name, |
| size_t | def_value = 0 ) |
Definition at line 318 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddShapeTensor | ( | const std::string & | name, |
| const std::vector< Dim > & | shapeValues, | ||
| bool | scalar = false ) |
Definition at line 225 of file RModel.cxx.
| std::string TMVA::Experimental::SOFIE::RModel::AllocateIntermediateMemory | ( | std::span< const std::string_view > | op_output_tensors | ) |
Definition at line 366 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::CheckAndFlushIntermediateMemory | ( | std::span< const std::string_view > | op_output_tensors, |
| const size_t & | op_idx ) |
Definition at line 471 of file RModel.cxx.
| bool TMVA::Experimental::SOFIE::RModel::CheckIfTensorAlreadyExist | ( | std::string | tensor_name | ) |
Definition at line 144 of file RModel.cxx.
| TMVA::Experimental::SOFIE::RModel::ClassDefNV | ( | RModel | , |
| 3 | ) |
|
protected |
Collects all identifiers starting with "tensor_" in the input code, provided that the occurrence is not immediately preceded by a character that is valid in a C++ identifier.
Excludes input and output tensor names. Returns a deduplicated std::vector<std::string>.
Definition at line 989 of file RModel.cxx.
|
inline |
Definition at line 155 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::Generate | ( | std::underlying_type_t< Options > | options, |
| int | batchSize = -1, | ||
| long | pos = 0, | ||
| bool | verbose = false ) |
Definition at line 1424 of file RModel.cxx.
|
protected |
Definition at line 891 of file RModel.cxx.
Definition at line 1047 of file RModel.cxx.
|
protected |
Definition at line 776 of file RModel.cxx.
|
protected |
Definition at line 812 of file RModel.cxx.
|
protected |
Definition at line 823 of file RModel.cxx.
|
protected |
Definition at line 880 of file RModel.cxx.
|
protected |
Definition at line 1102 of file RModel.cxx.
|
protected |
To emit the dimensions of the input tensors as a data member of a session, which is helpful when validating the inference inputs.
Definition at line 1698 of file RModel.cxx.
|
protected |
Definition at line 1208 of file RModel.cxx.
|
inline |
Definition at line 170 of file RModel.hxx.
|
inline |
Definition at line 205 of file RModel.hxx.
| std::vector< Dim > TMVA::Experimental::SOFIE::RModel::GetDimTensorShape | ( | const std::string & | name | ) | const |
Definition at line 87 of file RModel.cxx.
| std::vector< Dim > TMVA::Experimental::SOFIE::RModel::GetDynamicTensorShape | ( | const std::string & | name | ) | const |
Definition at line 98 of file RModel.cxx.
| std::shared_ptr< void > TMVA::Experimental::SOFIE::RModel::GetInitializedTensorData | ( | std::string | tensor_name | ) |
Definition at line 349 of file RModel.cxx.
|
inline |
Definition at line 203 of file RModel.hxx.
|
inline |
Definition at line 176 of file RModel.hxx.
|
inline |
Definition at line 174 of file RModel.hxx.
|
inline |
Definition at line 204 of file RModel.hxx.
| const std::vector< Dim > & TMVA::Experimental::SOFIE::RModel::GetShapeTensorValues | ( | const std::string & | tensor_name | ) | const |
Definition at line 251 of file RModel.cxx.
|
inline |
Definition at line 249 of file RModel.hxx.
|
inline |
Definition at line 249 of file RModel.hxx.
| std::vector< size_t > TMVA::Experimental::SOFIE::RModel::GetTensorShape | ( | const std::string & | name | ) | const |
Definition at line 51 of file RModel.cxx.
| ETensorType TMVA::Experimental::SOFIE::RModel::GetTensorType | ( | std::string | name | ) | const |
Definition at line 112 of file RModel.cxx.
|
inline |
Definition at line 172 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::HeadInitializedTensors | ( | std::string | name, |
| int | n_print = 50 ) |
Definition at line 1834 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::Initialize | ( | const std::map< std::string, size_t > & | inputParams, |
| bool | verbose = false ) |
Definition at line 560 of file RModel.cxx.
Definition at line 550 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::InitializeSubGraph | ( | std::shared_ptr< RModel > | graph | ) |
Definition at line 708 of file RModel.cxx.
check if a tensor is a alias tensor
Definition at line 247 of file RModel.cxx.
Definition at line 260 of file RModel.cxx.
Definition at line 274 of file RModel.cxx.
Definition at line 269 of file RModel.cxx.
Definition at line 256 of file RModel.cxx.
|
protected |
Check if a given parameter is used for the shape of an input tensor.
Definition at line 971 of file RModel.cxx.
Definition at line 278 of file RModel.cxx.
check if a tensor is a shape tensor
Definition at line 243 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::OutputGenerated | ( | std::string | filename = "", |
| bool | append = false ) |
Definition at line 1870 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintDynamicTensors | ( | ) | const |
Definition at line 1805 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintInitializedTensors | ( | ) | const |
Definition at line 1772 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintIntermediateTensors | ( | ) | const |
Definition at line 1790 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintOutputTensors | ( | ) | const |
Definition at line 1820 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintRequiredInputTensors | ( | ) | const |
Definition at line 1742 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintSummary | ( | ) | const |
Definition at line 1681 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::ReadInitializedTensorsFromFile | ( | long | pos | ) |
Definition at line 1489 of file RModel.cxx.
|
inline |
Definition at line 214 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::SetNotWritableInitializedTensor | ( | const std::string & | tensor_name | ) |
Definition at line 358 of file RModel.cxx.
|
inline |
Definition at line 167 of file RModel.hxx.
|
inline |
Definition at line 236 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::UpdateInitializedTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< std::size_t > | shape, | ||
| std::shared_ptr< void > | data ) |
Definition at line 340 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::UpdateOutputTensorList | ( | std::vector< std::string > | curr_output_tensor, |
| std::vector< std::string > | modify_output_tensor ) |
Definition at line 333 of file RModel.cxx.
|
inline |
Definition at line 234 of file RModel.hxx.
|
inline |
Definition at line 239 of file RModel.hxx.
|
inline |
Definition at line 59 of file RModel.hxx.
| long TMVA::Experimental::SOFIE::RModel::WriteInitializedTensorsToFile | ( | std::string | filename = "" | ) |
Definition at line 1563 of file RModel.cxx.
|
private |
Definition at line 34 of file RModel.hxx.
|
private |
Definition at line 19 of file RModel.hxx.
|
private |
Definition at line 21 of file RModel.hxx.
|
private |
Definition at line 35 of file RModel.hxx.
|
private |
Definition at line 31 of file RModel.hxx.
|
private |
Definition at line 29 of file RModel.hxx.
|
private |
Definition at line 27 of file RModel.hxx.
|
private |
Definition at line 37 of file RModel.hxx.
|
private |
! intermediate memory info (transient)
Definition at line 45 of file RModel.hxx.
|
private |
! lookup table for intermediate tensor frequency (transient)
Definition at line 46 of file RModel.hxx.
|
private |
Definition at line 30 of file RModel.hxx.
Definition at line 15 of file RModel.hxx.
Definition at line 16 of file RModel.hxx.
|
private |
Definition at line 39 of file RModel.hxx.
|
private |
Definition at line 25 of file RModel.hxx.
|
private |
Definition at line 23 of file RModel.hxx.
|
private |
Definition at line 36 of file RModel.hxx.
|
private |
Definition at line 42 of file RModel.hxx.
|
private |
Definition at line 20 of file RModel.hxx.
|
private |
Definition at line 28 of file RModel.hxx.
|
private |
Definition at line 33 of file RModel.hxx.
|
private |
Definition at line 32 of file RModel.hxx.
|
private |
! sub-graph models (transient)
Definition at line 41 of file RModel.hxx.
Definition at line 17 of file RModel.hxx.
|
private |
Definition at line 18 of file RModel.hxx.
|
private |
Definition at line 22 of file RModel.hxx.