ROOT
master
Reference Guide
Loading...
Searching...
No Matches
ParseShape.cxx
Go to the documentation of this file.
1
#include "
TMVA/RModelParser_ONNX.hxx
"
2
#include "
TMVA/ROperator_Shape.hxx
"
3
#include "
onnx.hxx
"
4
5
#include <climits>
// for INT_MAX
6
7
namespace
TMVA
{
8
namespace
Experimental {
9
namespace
SOFIE {
10
11
ParserFuncSignature
ParseShape
= [](
RModelParser_ONNX
&parser,
const
onnx::NodeProto
&
nodeproto
) {
12
auto
input_name
=
nodeproto
.input(0);
13
if
(!parser.
IsRegisteredTensorType
(
input_name
)) {
14
throw
std::runtime_error(
"TMVA::SOFIE ONNX Parser Shape op has input tensor"
+
input_name
+
15
" but its type is not yet registered"
);
16
}
17
18
std::unique_ptr<ROperator>
op
;
19
std::string
output_name
=
nodeproto
.output(0);
20
int
attr_start
= 0;
21
int
attr_end
=
INT_MAX
;
// cannot use 0 or -1 as default
22
23
for
(
int_t
i = 0; i <
nodeproto
.attribute_size(); i++) {
24
std::string
attribute_name
=
nodeproto
.attribute(i).name();
25
if
(
attribute_name
==
"start"
)
26
attr_start
=
nodeproto
.attribute(i).i();
27
if
(
attribute_name
==
"end"
)
28
attr_end
=
nodeproto
.attribute(i).i();
29
}
30
31
op
.reset(
new
ROperator_Shape
(
attr_start
,
attr_end
,
input_name
,
output_name
));
32
33
// output of Shpe is always an int64 tensor
34
if
(!parser.
IsRegisteredTensorType
(
output_name
)) {
35
parser.
RegisterTensorType
(
output_name
,
ETensorType::INT64
);
36
}
37
38
return
op
;
39
};
40
41
}
// namespace SOFIE
42
}
// namespace Experimental
43
}
// namespace TMVA
RModelParser_ONNX.hxx
ROperator_Shape.hxx
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:359
ROOT::Detail::TRangeCast
Definition
TCollection.h:312
TMVA::Experimental::SOFIE::RModelParser_ONNX
Definition
RModelParser_ONNX.hxx:30
TMVA::Experimental::SOFIE::RModelParser_ONNX::IsRegisteredTensorType
bool IsRegisteredTensorType(const std::string &)
Definition
RModelParser_ONNX.cxx:426
TMVA::Experimental::SOFIE::RModelParser_ONNX::RegisterTensorType
void RegisterTensorType(const std::string &, ETensorType)
Definition
RModelParser_ONNX.cxx:421
TMVA::Experimental::SOFIE::ROperator_Shape
Definition
ROperator_Shape.hxx:18
onnx::NodeProto
Definition
onnx.hxx:492
TMVA::Experimental::SOFIE::ETensorType::INT64
@ INT64
TMVA::Experimental::SOFIE::ParserFuncSignature
std::function< std::unique_ptr< ROperator >(RModelParser_ONNX &, const onnx::NodeProto &)> ParserFuncSignature
Definition
RModelParser_ONNX.hxx:25
TMVA::Experimental::SOFIE::ParseShape
ParserFuncSignature ParseShape
Definition
ParseShape.cxx:11
TMVA::Experimental::SOFIE::int_t
std::int64_t int_t
Definition
SOFIE_common.hxx:56
TMVA
create variable transformations
Definition
GeneticMinimizer.h:22
onnx.hxx
tmva
sofie_parsers
src
ParseShape.cxx
ROOTmaster - Reference Guide Generated on Sun Aug 16 2026 04:54:07 (GVA Time) using Doxygen 1.10.0