Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TMVA::Experimental::SOFIE::RModel Class Referencefinal

Definition at line 12 of file RModel.hxx.

Public Member Functions

 RModel ()=default
 Default constructor.
 
 RModel (const RModel &other)=delete
 
 RModel (RModel &&other)
 
 RModel (std::string function_name)
 
 RModel (std::string name, std::string parsedtime)
 
 ~RModel ()=default
 
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 AddOperatorReference (ROperator *op, int order_execution=-1)
 
void AddOutputTensorNameList (std::vector< std::string > output_tensor_names)
 
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)
 
std::vector< DimGetDynamicTensorShape (std::string name)
 
std::shared_ptr< void > GetInitializedTensorData (std::string tensor_name)
 
const std::vector< std::string > & GetInputTensorNames () const
 
std::vector< std::string > GetOutputTensorNames ()
 
const std::vector< std::string > & GetOutputTensorNames () const
 
const std::vector< size_t > & GetTensorShape (std::string name)
 
const ETensorTypeGetTensorType (std::string name)
 
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 IsDynamicTensor (const std::string &name) const
 
bool IsInitializedTensor (const std::string &name) const
 
bool IsInputTensor (const std::string &name) const
 
RModeloperator= (const RModel &other)=delete
 
RModeloperator= (RModel &&other)
 
void OutputGenerated (std::string filename="", bool append=false)
 
void PrintDynamicTensors ()
 
void PrintInitializedTensors ()
 
void PrintIntermediateTensors ()
 
void PrintOutputTensors ()
 
void PrintRequiredInputTensors ()
 
void ReadInitializedTensorsFromFile (long)
 
void SetFilename (std::string filename)
 
void SetNotWritableInitializedTensor (const std::string &tensor_name)
 
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::string ReturnGenerated ()
 
void SetFilename (std::string filename)
 

Protected Member Functions

void GenerateDynamicTensorInfo ()
 
void GenerateInitializedTensorInfo ()
 
void GenerateIntermediateTensorInfo ()
 
void GenerateOutput ()
 
void GenerateSessionCode ()
 

Private Attributes

int fBatchSize = -1
 
std::unordered_map< std::string, DynamicTensorInfofDynamicTensorInfos
 
std::unordered_map< std::string, InitializedTensorfInitializedTensors
 
std::unordered_map< std::string, InputTensorInfofInputTensorInfos
 
std::vector< std::string > fInputTensorNames
 
std::unordered_map< std::string, TensorInfofIntermediateTensorInfos
 
bool fIsInitialized = false
 
bool fIsSubGraph = false
 
std::vector< std::unique_ptr< ROperator > > fOperators
 
std::vector< std::string > fOutputTensorNames
 
RModelfParentGraph = nullptr
 
long fReadPos = 0
 
std::unordered_map< std::string, TensorInfofReadyInputTensorInfos
 
std::unordered_map< std::string, std::string > fShapeParams
 
std::vector< std::shared_ptr< RModel > > fSubGraphs
 ! sub-graph models (transient)
 
int fVerbose = 0
 
const std::string SP = " "
 

Additional Inherited Members

- Protected Attributes inherited from TMVA::Experimental::SOFIE::RModel_Base
const std::unordered_set< std::string > fAllowedStdLib = {"vector", "algorithm", "cmath"}
 
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>

Inheritance diagram for TMVA::Experimental::SOFIE::RModel:
[legend]

Constructor & Destructor Documentation

◆ RModel() [1/5]

TMVA::Experimental::SOFIE::RModel::RModel ( RModel &&  other)

Definition at line 23 of file RModel.cxx.

◆ RModel() [2/5]

TMVA::Experimental::SOFIE::RModel::RModel ( const RModel other)
delete

◆ ~RModel()

TMVA::Experimental::SOFIE::RModel::~RModel ( )
default

◆ RModel() [3/5]

TMVA::Experimental::SOFIE::RModel::RModel ( )
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

◆ RModel() [4/5]

TMVA::Experimental::SOFIE::RModel::RModel ( std::string  name,
std::string  parsedtime 
)
inline

Definition at line 52 of file RModel.hxx.

◆ RModel() [5/5]

TMVA::Experimental::SOFIE::RModel::RModel ( std::string  function_name)
inline

Definition at line 55 of file RModel.hxx.

Member Function Documentation

◆ AddConstantTensor() [1/3]

template<class T >
void TMVA::Experimental::SOFIE::RModel::AddConstantTensor ( const std::string &  name,
const std::vector< size_t > &  shape,
const std::vector< T > &  data 
)
inline

Definition at line 86 of file RModel.hxx.

◆ AddConstantTensor() [2/3]

template<class T >
void TMVA::Experimental::SOFIE::RModel::AddConstantTensor ( const std::string &  name,
const std::vector< size_t > &  shape,
const T *  data 
)
inline

Definition at line 78 of file RModel.hxx.

◆ AddConstantTensor() [3/3]

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 178 of file RModel.cxx.

◆ AddDynamicTensor()

void TMVA::Experimental::SOFIE::RModel::AddDynamicTensor ( std::string  tensor_name,
ETensorType  type,
std::vector< Dim shape 
)

Definition at line 220 of file RModel.cxx.

◆ AddInitializedTensor() [1/2]

template<typename T >
void TMVA::Experimental::SOFIE::RModel::AddInitializedTensor ( const std::string &  tensor_name,
const std::vector< std::size_t > &  shape,
T *  raw_data 
)
inline

Definition at line 95 of file RModel.hxx.

◆ AddInitializedTensor() [2/2]

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 168 of file RModel.cxx.

◆ AddInputTensorInfo() [1/2]

void TMVA::Experimental::SOFIE::RModel::AddInputTensorInfo ( std::string  input_name,
ETensorType  type,
std::vector< Dim shape 
)

Definition at line 132 of file RModel.cxx.

◆ AddInputTensorInfo() [2/2]

void TMVA::Experimental::SOFIE::RModel::AddInputTensorInfo ( std::string  input_name,
ETensorType  type,
std::vector< size_t >  shape 
)

Definition at line 142 of file RModel.cxx.

◆ AddInputTensorName()

void TMVA::Experimental::SOFIE::RModel::AddInputTensorName ( std::string  name)

Definition at line 151 of file RModel.cxx.

◆ AddIntermediateTensor() [1/2]

void TMVA::Experimental::SOFIE::RModel::AddIntermediateTensor ( std::string  tensor_name,
ETensorType  type,
std::vector< Dim dim_shape 
)

Definition at line 203 of file RModel.cxx.

◆ AddIntermediateTensor() [2/2]

void TMVA::Experimental::SOFIE::RModel::AddIntermediateTensor ( std::string  tensor_name,
ETensorType  type,
std::vector< std::size_t >  shape 
)

Definition at line 211 of file RModel.cxx.

◆ AddOperator()

void TMVA::Experimental::SOFIE::RModel::AddOperator ( std::unique_ptr< ROperator op,
int  order_execution = -1 
)

Definition at line 155 of file RModel.cxx.

◆ AddOperatorReference()

void TMVA::Experimental::SOFIE::RModel::AddOperatorReference ( ROperator op,
int  order_execution = -1 
)
inline

Definition at line 67 of file RModel.hxx.

◆ AddOutputTensorNameList()

void TMVA::Experimental::SOFIE::RModel::AddOutputTensorNameList ( std::vector< std::string >  output_tensor_names)

Definition at line 241 of file RModel.cxx.

◆ CheckIfTensorAlreadyExist()

bool TMVA::Experimental::SOFIE::RModel::CheckIfTensorAlreadyExist ( std::string  tensor_name)

Definition at line 122 of file RModel.cxx.

◆ ClassDefNV()

TMVA::Experimental::SOFIE::RModel::ClassDefNV ( RModel  ,
 
)

◆ Generate() [1/2]

void TMVA::Experimental::SOFIE::RModel::Generate ( Options  options = Options::kDefault,
int  batchSize = -1,
int  pos = 0,
bool  verbose = false 
)
inline

Definition at line 133 of file RModel.hxx.

◆ Generate() [2/2]

void TMVA::Experimental::SOFIE::RModel::Generate ( std::underlying_type_t< Options options,
int  batchSize = -1,
long  pos = 0,
bool  verbose = false 
)

Definition at line 703 of file RModel.cxx.

◆ GenerateDynamicTensorInfo()

void TMVA::Experimental::SOFIE::RModel::GenerateDynamicTensorInfo ( )
protected

Definition at line 488 of file RModel.cxx.

◆ GenerateInferSignature()

std::string TMVA::Experimental::SOFIE::RModel::GenerateInferSignature ( bool  isdecl = true)

Definition at line 501 of file RModel.cxx.

◆ GenerateInitializedTensorInfo()

void TMVA::Experimental::SOFIE::RModel::GenerateInitializedTensorInfo ( )
protected

Definition at line 407 of file RModel.cxx.

◆ GenerateIntermediateTensorInfo()

void TMVA::Experimental::SOFIE::RModel::GenerateIntermediateTensorInfo ( )
protected

Definition at line 447 of file RModel.cxx.

◆ GenerateOutput()

void TMVA::Experimental::SOFIE::RModel::GenerateOutput ( )
protected

Definition at line 536 of file RModel.cxx.

◆ GenerateSessionCode()

void TMVA::Experimental::SOFIE::RModel::GenerateSessionCode ( )
protected

Definition at line 621 of file RModel.cxx.

◆ GetDynamicTensorShape()

std::vector< Dim > TMVA::Experimental::SOFIE::RModel::GetDynamicTensorShape ( std::string  name)

Definition at line 82 of file RModel.cxx.

◆ GetInitializedTensorData()

std::shared_ptr< void > TMVA::Experimental::SOFIE::RModel::GetInitializedTensorData ( std::string  tensor_name)

Definition at line 264 of file RModel.cxx.

◆ GetInputTensorNames()

const std::vector< std::string > & TMVA::Experimental::SOFIE::RModel::GetInputTensorNames ( ) const
inline

Definition at line 154 of file RModel.hxx.

◆ GetOutputTensorNames() [1/2]

std::vector< std::string > TMVA::Experimental::SOFIE::RModel::GetOutputTensorNames ( )
inline

Definition at line 163 of file RModel.hxx.

◆ GetOutputTensorNames() [2/2]

const std::vector< std::string > & TMVA::Experimental::SOFIE::RModel::GetOutputTensorNames ( ) const
inline

Definition at line 155 of file RModel.hxx.

◆ GetTensorShape()

const std::vector< size_t > & TMVA::Experimental::SOFIE::RModel::GetTensorShape ( std::string  name)

Definition at line 56 of file RModel.cxx.

◆ GetTensorType()

const ETensorType & TMVA::Experimental::SOFIE::RModel::GetTensorType ( std::string  name)

Definition at line 94 of file RModel.cxx.

◆ HeadInitializedTensors()

void TMVA::Experimental::SOFIE::RModel::HeadInitializedTensors ( std::string  name,
int  n_print = 50 
)

Definition at line 1045 of file RModel.cxx.

◆ Initialize() [1/2]

void TMVA::Experimental::SOFIE::RModel::Initialize ( const std::map< std::string, size_t > &  inputParams,
bool  verbose = false 
)

Definition at line 290 of file RModel.cxx.

◆ Initialize() [2/2]

void TMVA::Experimental::SOFIE::RModel::Initialize ( int  batchSize = -1,
bool  verbose = false 
)

Definition at line 281 of file RModel.cxx.

◆ InitializeSubGraph()

void TMVA::Experimental::SOFIE::RModel::InitializeSubGraph ( std::shared_ptr< RModel graph)

Definition at line 378 of file RModel.cxx.

◆ IsDynamicTensor()

bool TMVA::Experimental::SOFIE::RModel::IsDynamicTensor ( const std::string &  name) const

Definition at line 193 of file RModel.cxx.

◆ IsInitializedTensor()

bool TMVA::Experimental::SOFIE::RModel::IsInitializedTensor ( const std::string &  name) const

Definition at line 188 of file RModel.cxx.

◆ IsInputTensor()

bool TMVA::Experimental::SOFIE::RModel::IsInputTensor ( const std::string &  name) const

Definition at line 197 of file RModel.cxx.

◆ operator=() [1/2]

RModel & TMVA::Experimental::SOFIE::RModel::operator= ( const RModel other)
delete

◆ operator=() [2/2]

RModel & TMVA::Experimental::SOFIE::RModel::operator= ( RModel &&  other)

Definition at line 39 of file RModel.cxx.

◆ OutputGenerated()

void TMVA::Experimental::SOFIE::RModel::OutputGenerated ( std::string  filename = "",
bool  append = false 
)

Definition at line 1081 of file RModel.cxx.

◆ PrintDynamicTensors()

void TMVA::Experimental::SOFIE::RModel::PrintDynamicTensors ( )

Definition at line 1018 of file RModel.cxx.

◆ PrintInitializedTensors()

void TMVA::Experimental::SOFIE::RModel::PrintInitializedTensors ( )

Definition at line 985 of file RModel.cxx.

◆ PrintIntermediateTensors()

void TMVA::Experimental::SOFIE::RModel::PrintIntermediateTensors ( )

Definition at line 1003 of file RModel.cxx.

◆ PrintOutputTensors()

void TMVA::Experimental::SOFIE::RModel::PrintOutputTensors ( )

Definition at line 1033 of file RModel.cxx.

◆ PrintRequiredInputTensors()

void TMVA::Experimental::SOFIE::RModel::PrintRequiredInputTensors ( )

Definition at line 955 of file RModel.cxx.

◆ ReadInitializedTensorsFromFile()

void TMVA::Experimental::SOFIE::RModel::ReadInitializedTensorsFromFile ( long  pos)

Definition at line 761 of file RModel.cxx.

◆ SetFilename()

void TMVA::Experimental::SOFIE::RModel::SetFilename ( std::string  filename)
inline

Definition at line 164 of file RModel.hxx.

◆ SetNotWritableInitializedTensor()

void TMVA::Experimental::SOFIE::RModel::SetNotWritableInitializedTensor ( const std::string &  tensor_name)

Definition at line 273 of file RModel.cxx.

◆ UpdateInitializedTensor()

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 255 of file RModel.cxx.

◆ UpdateOutputTensorList()

void TMVA::Experimental::SOFIE::RModel::UpdateOutputTensorList ( std::vector< std::string >  curr_output_tensor,
std::vector< std::string >  modify_output_tensor 
)

Definition at line 248 of file RModel.cxx.

◆ UseSession()

bool TMVA::Experimental::SOFIE::RModel::UseSession ( ) const
inline

Definition at line 184 of file RModel.hxx.

◆ Verbose()

int TMVA::Experimental::SOFIE::RModel::Verbose ( ) const
inline

Definition at line 57 of file RModel.hxx.

◆ WriteInitializedTensorsToFile()

long TMVA::Experimental::SOFIE::RModel::WriteInitializedTensorsToFile ( std::string  filename = "")

Definition at line 847 of file RModel.cxx.

Member Data Documentation

◆ fBatchSize

int TMVA::Experimental::SOFIE::RModel::fBatchSize = -1
private

Definition at line 18 of file RModel.hxx.

◆ fDynamicTensorInfos

std::unordered_map<std::string, DynamicTensorInfo> TMVA::Experimental::SOFIE::RModel::fDynamicTensorInfos
private

Definition at line 26 of file RModel.hxx.

◆ fInitializedTensors

std::unordered_map<std::string, InitializedTensor> TMVA::Experimental::SOFIE::RModel::fInitializedTensors
private

Definition at line 24 of file RModel.hxx.

◆ fInputTensorInfos

std::unordered_map<std::string, InputTensorInfo> TMVA::Experimental::SOFIE::RModel::fInputTensorInfos
private

Definition at line 22 of file RModel.hxx.

◆ fInputTensorNames

std::vector<std::string> TMVA::Experimental::SOFIE::RModel::fInputTensorNames
private

Definition at line 30 of file RModel.hxx.

◆ fIntermediateTensorInfos

std::unordered_map<std::string, TensorInfo> TMVA::Experimental::SOFIE::RModel::fIntermediateTensorInfos
private

Definition at line 25 of file RModel.hxx.

◆ fIsInitialized

bool TMVA::Experimental::SOFIE::RModel::fIsInitialized = false
private

Definition at line 15 of file RModel.hxx.

◆ fIsSubGraph

bool TMVA::Experimental::SOFIE::RModel::fIsSubGraph = false
private

Definition at line 16 of file RModel.hxx.

◆ fOperators

std::vector<std::unique_ptr<ROperator> > TMVA::Experimental::SOFIE::RModel::fOperators
private

Definition at line 32 of file RModel.hxx.

◆ fOutputTensorNames

std::vector<std::string> TMVA::Experimental::SOFIE::RModel::fOutputTensorNames
private

Definition at line 29 of file RModel.hxx.

◆ fParentGraph

RModel* TMVA::Experimental::SOFIE::RModel::fParentGraph = nullptr
private

Definition at line 35 of file RModel.hxx.

◆ fReadPos

long TMVA::Experimental::SOFIE::RModel::fReadPos = 0
private

Definition at line 19 of file RModel.hxx.

◆ fReadyInputTensorInfos

std::unordered_map<std::string, TensorInfo> TMVA::Experimental::SOFIE::RModel::fReadyInputTensorInfos
private

Definition at line 23 of file RModel.hxx.

◆ fShapeParams

std::unordered_map<std::string, std::string> TMVA::Experimental::SOFIE::RModel::fShapeParams
private

Definition at line 28 of file RModel.hxx.

◆ fSubGraphs

std::vector<std::shared_ptr<RModel> > TMVA::Experimental::SOFIE::RModel::fSubGraphs
private

! sub-graph models (transient)

Definition at line 34 of file RModel.hxx.

◆ fVerbose

int TMVA::Experimental::SOFIE::RModel::fVerbose = 0
private

Definition at line 17 of file RModel.hxx.

◆ SP

const std::string TMVA::Experimental::SOFIE::RModel::SP = " "
private

Definition at line 37 of file RModel.hxx.

Libraries for TMVA::Experimental::SOFIE::RModel:

The documentation for this class was generated from the following files: