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 | 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 |
| 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 | 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) | |
| 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 53 of file RModel.hxx.
|
inline |
Definition at line 56 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::AddAliasTensor | ( | const std::string & | tensor_name, |
| const std::string & | orig_tensor_name ) |
Definition at line 232 of file RModel.cxx.
|
inline |
Definition at line 91 of file RModel.hxx.
|
inline |
Definition at line 83 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 214 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddDynamicTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< Dim > | shape ) |
Definition at line 300 of file RModel.cxx.
|
inline |
Definition at line 100 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 204 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddInputTensorInfo | ( | std::string | input_name, |
| ETensorType | type, | ||
| std::vector< Dim > | shape ) |
Definition at line 154 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddInputTensorInfo | ( | std::string | input_name, |
| ETensorType | type, | ||
| std::vector< size_t > | shape ) |
Definition at line 164 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddInputTensorName | ( | std::string | name | ) |
Definition at line 173 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddIntermediateTensor | ( | std::string | tensor_name, |
| ETensorType | type, | ||
| std::vector< Dim > | dim_shape ) |
Definition at line 283 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 291 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddOperator | ( | std::unique_ptr< ROperator > | op, |
| int | order_execution = -1 ) |
Definition at line 177 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddOutputTensorNameList | ( | std::vector< std::string > | output_tensor_names | ) |
Definition at line 325 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::AddShapeParam | ( | const std::string & | name, |
| size_t | def_value = 0 ) |
Definition at line 317 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 224 of file RModel.cxx.
| std::string TMVA::Experimental::SOFIE::RModel::AllocateIntermediateMemory | ( | std::span< const std::string_view > | op_output_tensors | ) |
Definition at line 365 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 470 of file RModel.cxx.
| bool TMVA::Experimental::SOFIE::RModel::CheckIfTensorAlreadyExist | ( | std::string | tensor_name | ) |
Definition at line 143 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 958 of file RModel.cxx.
|
inline |
Definition at line 154 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 1391 of file RModel.cxx.
|
protected |
Definition at line 860 of file RModel.cxx.
Definition at line 1016 of file RModel.cxx.
|
protected |
Definition at line 752 of file RModel.cxx.
|
protected |
Definition at line 781 of file RModel.cxx.
|
protected |
Definition at line 792 of file RModel.cxx.
|
protected |
Definition at line 849 of file RModel.cxx.
|
protected |
Definition at line 1071 of file RModel.cxx.
|
protected |
Definition at line 1177 of file RModel.cxx.
|
inline |
Definition at line 169 of file RModel.hxx.
|
inline |
Definition at line 203 of file RModel.hxx.
| std::vector< Dim > TMVA::Experimental::SOFIE::RModel::GetDimTensorShape | ( | const std::string & | name | ) | const |
Definition at line 86 of file RModel.cxx.
| std::vector< Dim > TMVA::Experimental::SOFIE::RModel::GetDynamicTensorShape | ( | const std::string & | name | ) | const |
Definition at line 97 of file RModel.cxx.
| std::shared_ptr< void > TMVA::Experimental::SOFIE::RModel::GetInitializedTensorData | ( | std::string | tensor_name | ) |
Definition at line 348 of file RModel.cxx.
|
inline |
Definition at line 201 of file RModel.hxx.
|
inline |
Definition at line 175 of file RModel.hxx.
|
inline |
Definition at line 173 of file RModel.hxx.
|
inline |
Definition at line 202 of file RModel.hxx.
| const std::vector< Dim > & TMVA::Experimental::SOFIE::RModel::GetShapeTensorValues | ( | const std::string & | tensor_name | ) | const |
Definition at line 250 of file RModel.cxx.
|
inline |
Definition at line 242 of file RModel.hxx.
|
inline |
Definition at line 242 of file RModel.hxx.
| std::vector< size_t > TMVA::Experimental::SOFIE::RModel::GetTensorShape | ( | const std::string & | name | ) | const |
Definition at line 50 of file RModel.cxx.
| ETensorType TMVA::Experimental::SOFIE::RModel::GetTensorType | ( | std::string | name | ) | const |
Definition at line 111 of file RModel.cxx.
|
inline |
Definition at line 171 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::HeadInitializedTensors | ( | std::string | name, |
| int | n_print = 50 ) |
Definition at line 1749 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::Initialize | ( | const std::map< std::string, size_t > & | inputParams, |
| bool | verbose = false ) |
Definition at line 559 of file RModel.cxx.
Definition at line 549 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::InitializeSubGraph | ( | std::shared_ptr< RModel > | graph | ) |
Definition at line 684 of file RModel.cxx.
check if a tensor is a alias tensor
Definition at line 246 of file RModel.cxx.
Definition at line 259 of file RModel.cxx.
Definition at line 273 of file RModel.cxx.
Definition at line 268 of file RModel.cxx.
Definition at line 255 of file RModel.cxx.
|
protected |
Check if a given parameter is used for the shape of an input tensor.
Definition at line 940 of file RModel.cxx.
Definition at line 277 of file RModel.cxx.
check if a tensor is a shape tensor
Definition at line 242 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::OutputGenerated | ( | std::string | filename = "", |
| bool | append = false ) |
Definition at line 1785 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintDynamicTensors | ( | ) | const |
Definition at line 1720 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintInitializedTensors | ( | ) | const |
Definition at line 1687 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintIntermediateTensors | ( | ) | const |
Definition at line 1705 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintOutputTensors | ( | ) | const |
Definition at line 1735 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintRequiredInputTensors | ( | ) | const |
Definition at line 1657 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::PrintSummary | ( | ) | const |
Definition at line 1642 of file RModel.cxx.
| void TMVA::Experimental::SOFIE::RModel::ReadInitializedTensorsFromFile | ( | long | pos | ) |
Definition at line 1456 of file RModel.cxx.
|
inline |
Definition at line 212 of file RModel.hxx.
| void TMVA::Experimental::SOFIE::RModel::SetNotWritableInitializedTensor | ( | const std::string & | tensor_name | ) |
Definition at line 357 of file RModel.cxx.
|
inline |
Definition at line 166 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 339 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 332 of file RModel.cxx.
|
inline |
Definition at line 232 of file RModel.hxx.
|
inline |
Definition at line 58 of file RModel.hxx.
| long TMVA::Experimental::SOFIE::RModel::WriteInitializedTensorsToFile | ( | std::string | filename = "" | ) |
Definition at line 1530 of file RModel.cxx.
|
private |
Definition at line 33 of file RModel.hxx.
|
private |
Definition at line 18 of file RModel.hxx.
|
private |
Definition at line 20 of file RModel.hxx.
|
private |
Definition at line 34 of file RModel.hxx.
|
private |
Definition at line 30 of file RModel.hxx.
|
private |
Definition at line 28 of file RModel.hxx.
|
private |
Definition at line 26 of file RModel.hxx.
|
private |
Definition at line 36 of file RModel.hxx.
|
private |
! intermediate memory info (transient)
Definition at line 44 of file RModel.hxx.
|
private |
! lookup table for intermediate tensor frequency (transient)
Definition at line 45 of file RModel.hxx.
|
private |
Definition at line 29 of file RModel.hxx.
Definition at line 15 of file RModel.hxx.
Definition at line 16 of file RModel.hxx.
|
private |
Definition at line 38 of file RModel.hxx.
|
private |
Definition at line 24 of file RModel.hxx.
|
private |
Definition at line 22 of file RModel.hxx.
|
private |
Definition at line 35 of file RModel.hxx.
|
private |
Definition at line 41 of file RModel.hxx.
|
private |
Definition at line 19 of file RModel.hxx.
|
private |
Definition at line 27 of file RModel.hxx.
|
private |
Definition at line 32 of file RModel.hxx.
|
private |
Definition at line 31 of file RModel.hxx.
|
private |
! sub-graph models (transient)
Definition at line 40 of file RModel.hxx.
|
private |
Definition at line 17 of file RModel.hxx.
|
private |
Definition at line 21 of file RModel.hxx.