1#ifndef TMVA_SOFIE_RMODELPARSER_ONNX
2#define TMVA_SOFIE_RMODELPARSER_ONNX
8#include <unordered_map>
20namespace Experimental {
23class RModelParser_ONNX;
26 std::function<std::unique_ptr<ROperator>(
RModelParser_ONNX & ,
const onnx::NodeProto & )>;
28 std::function<std::unique_ptr<ROperator> (
RModelParser_ONNX& ,
const onnx::NodeProto& ,
const onnx::NodeProto& )>;
78 std::unique_ptr<ROperator>
ParseOperator(
const size_t ,
const onnx::GraphProto & ,
79 const std::vector<size_t> & ,
const std::vector<int> & );
82 void CheckGraph(
const onnx::GraphProto &
g,
int & level, std::map<std::string, int> & missingOperators);
87 std::unique_ptr<onnx::ModelProto>
LoadModel(
const std::string &filename);
88 std::unique_ptr<onnx::ModelProto>
LoadModel(std::istream &input);
96 RModel Parse(std::
string const &filename,
bool verbose = false);
100 bool CheckModel(std::
string filename,
bool verbose = false);
void RegisterOperator(const std::string &name, ParserFuncSignature func)
std::unique_ptr< ROperator > ParseOperator(const size_t, const onnx::GraphProto &, const std::vector< size_t > &, const std::vector< int > &)
void SetExternalDataFile(const std::string &dataFileName)
std::string fDataFileName
bool IsRegisteredOperator(const std::string &name)
void CheckGraph(const onnx::GraphProto &g, int &level, std::map< std::string, int > &missingOperators)
void ParseONNXGraph(RModel &model, const onnx::GraphProto &g, std::string name="")
RModelParser_ONNX() noexcept
std::unordered_map< std::string, ETensorType > fTensorTypeMap
RModel Parse(std::string const &filename, bool verbose=false)
std::shared_ptr< void > GetInitializedTensorData(onnx::TensorProto *tensorproto, size_t tensor_length, ETensorType type)
std::map< int, std::pair< EFusedOp, int > > fFusedOperators
bool IsRegisteredTensorType(const std::string &)
void RegisterTensorType(const std::string &, ETensorType)
ETensorType GetTensorType(const std::string &name)
std::vector< std::string > GetRegisteredOperators()
std::unique_ptr< onnx::ModelProto > LoadModel(const std::string &filename)
std::unique_ptr< OperatorsMapImpl > fOperatorsMapImpl
bool CheckModel(std::string filename, bool verbose=false)
std::function< std::unique_ptr< ROperator >(RModelParser_ONNX &, const onnx::NodeProto &, const onnx::NodeProto &)> ParserFuseFuncSignature
std::function< std::unique_ptr< ROperator >(RModelParser_ONNX &, const onnx::NodeProto &)> ParserFuncSignature
create variable transformations