7namespace Experimental {
10template<EBasicNaryOperator Op>
13 std::vector<std::string> inputs;
16 for (
int i = 0; i < nodeproto.
input_size(); ++i) {
17 auto input_name = nodeproto.
input(i);
24 throw std::runtime_error(
"TMVA::SOFIE ONNX Parser " + nodeproto.
op_type() +
" op has input tensor " +
25 input_name +
" but its type is not yet registered");
27 inputs.emplace_back(input_name);
30 std::unique_ptr<ROperator> op;
31 std::string output_name = nodeproto.
output(0);
39 throw std::runtime_error(
"TMVA::SOFIE - Unsupported - Operator " + nodeproto.
op_type() +
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
void RegisterOperator(const std::string &name, ParserFuncSignature func)
bool IsRegisteredTensorType(const std::string &)
void RegisterTensorType(const std::string &, ETensorType)
ETensorType GetTensorType(const std::string &name)
const std::string & op_type() const
const std::string & input(int i) const
const std::string & output(int i) const
std::unique_ptr< ROperator > ParseBasicNary(RModelParser_ONNX &parser, const onnx::NodeProto &nodeproto)
std::string ConvertTypeToString(ETensorType type)
void RegisterBasicNaryParsers(RModelParser_ONNX &parser)
create variable transformations