ROOT
master
Reference Guide
Loading...
Searching...
No Matches
ParseNot.cxx
Go to the documentation of this file.
1
#include "
TMVA/RModelParser_ONNX.hxx
"
2
#include "
TMVA/ROperator_Not.hxx
"
3
#include "onnx_proto3.pb.h"
4
5
namespace
TMVA
{
6
namespace
Experimental {
7
namespace
SOFIE {
8
9
ParserFuncSignature
ParseNot
= [](
RModelParser_ONNX
&parser,
const
onnx::NodeProto &
nodeproto
)
10
{
11
ETensorType
input_type
=
ETensorType::UNDEFINED
;
12
13
if
(
nodeproto
.input_size() != 1 ||
nodeproto
.output_size() != 1)
14
std::runtime_error(
"TMVA::SOFIE ONNX Parser Not op has invalid input or output size "
);
15
16
std::string
input_name
=
nodeproto
.input(0);
17
18
if
(parser.
IsRegisteredTensorType
(
input_name
)) {
19
input_type
= parser.
GetTensorType
(
input_name
);
20
if
(
input_type
!=
ETensorType::BOOL
&&
input_type
!=
ETensorType::UINT8
)
21
std::runtime_error(
"TMVA::SOFIE ONNX Parser Not op has invalid input type "
+
ConvertTypeToString
(
input_type
));
22
}
else
{
23
throw
24
std::runtime_error(
"TMVA::SOFIE ONNX Parser Not op has input tensor "
+
input_name
+
25
" but its type is not yet registered"
);
26
}
27
28
std::string
output_name
=
nodeproto
.output(0);
29
std::unique_ptr<ROperator>
op
(
new
ROperator_Not
(
input_name
,
output_name
));
30
31
// Infer the output type
32
if
(!parser.
IsRegisteredTensorType
(
output_name
)) {
33
parser.
RegisterTensorType
(
output_name
,
input_type
);
34
}
35
36
return
op
;
37
};
38
39
40
}
// namespace SOFIE
41
}
// namespace Experimental
42
}
// namespace TMVA
RModelParser_ONNX.hxx
ROperator_Not.hxx
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:360
ROOT::Detail::TRangeCast
Definition
TCollection.h:313
TMVA::Experimental::SOFIE::RModelParser_ONNX
Definition
RModelParser_ONNX.hxx:28
TMVA::Experimental::SOFIE::RModelParser_ONNX::IsRegisteredTensorType
bool IsRegisteredTensorType(const std::string &)
Definition
RModelParser_ONNX.cxx:286
TMVA::Experimental::SOFIE::RModelParser_ONNX::RegisterTensorType
void RegisterTensorType(const std::string &, ETensorType)
Definition
RModelParser_ONNX.cxx:281
TMVA::Experimental::SOFIE::RModelParser_ONNX::GetTensorType
ETensorType GetTensorType(const std::string &name)
Definition
RModelParser_ONNX.cxx:291
TMVA::Experimental::SOFIE::ROperator_Not
Definition
ROperator_Not.hxx:13
TMVA::Experimental::SOFIE::ETensorType
ETensorType
Definition
SOFIE_common.hxx:28
TMVA::Experimental::SOFIE::ETensorType::UNDEFINED
@ UNDEFINED
TMVA::Experimental::SOFIE::ETensorType::BOOL
@ BOOL
TMVA::Experimental::SOFIE::ETensorType::UINT8
@ UINT8
TMVA::Experimental::SOFIE::ParserFuncSignature
std::function< std::unique_ptr< ROperator >(RModelParser_ONNX &, const onnx::NodeProto &)> ParserFuncSignature
Definition
RModelParser_ONNX.hxx:23
TMVA::Experimental::SOFIE::ParseNot
ParserFuncSignature ParseNot
Definition
ParseNot.cxx:9
TMVA::Experimental::SOFIE::ConvertTypeToString
std::string ConvertTypeToString(ETensorType type)
Definition
SOFIE_common.cxx:61
TMVA
create variable transformations
Definition
GeneticMinimizer.h:22
tmva
sofie_parsers
src
ParseNot.cxx
ROOTmaster - Reference Guide Generated on Sat Mar 14 2026 14:28:13 (GVA Time) using Doxygen 1.10.0