12 int input_size = nodeproto.input_size();
13 std::vector<std::string> input_names(input_size);
14 for (
int i = 0; i < input_size; i++) {
16 throw std::runtime_error(
"TMVA::SOFIE ONNX Parser Einsum op has input tensor " + nodeproto.input(i)
17 +
" but its type is not yet registered");
22 throw std::runtime_error(
"TMVA::SOFIE ONNX parser Einsum op has input tensors of different types: " +
26 input_names[i] = nodeproto.input(i);
30 if (nodeproto.attribute_size() == 0)
31 throw std::runtime_error(
"TMVA::SOFIE ONNX Parser Einsum op has no attribute defining the equation");
32 if (nodeproto.attribute(0).name() !=
"equation")
33 throw std::runtime_error(
"TMVA::SOFIE ONNX Parser Einsum op has wrong attribute name: " + nodeproto.attribute(0).name());
34 std::string equation = nodeproto.attribute(0).s();
36 std::unique_ptr<ROperator> op;
37 std::string output_name = nodeproto.output(0);
46 throw std::runtime_error(
"TMVA::SOFIE - Unsupported - Einsum Operator does not yet support input type " +
47 std::to_string(
static_cast<int>(input_type)));