ROOT
master
Reference Guide
Loading...
Searching...
No Matches
ParseHardSigmoid.cxx
Go to the documentation of this file.
1
#include "
TMVA/RModelParser_ONNX.hxx
"
2
#include "
TMVA/ROperator_HardSigmoid.hxx
"
3
#include "onnx_proto3.pb.h"
4
5
namespace
TMVA
{
6
namespace
Experimental {
7
namespace
SOFIE {
8
9
ParserFuncSignature
ParseHardSigmoid
= [](
RModelParser_ONNX
&parser,
const
onnx::NodeProto &
nodeproto
) {
10
ETensorType
input_type
;
11
12
auto
input_name
=
nodeproto
.input(0);
13
if
(parser.
IsRegisteredTensorType
(
input_name
)) {
14
input_type
= parser.
GetTensorType
(
input_name
);
15
}
else
{
16
throw
std::runtime_error(
"TMVA::SOFIE ONNX Parser HardSigmoid op has input tensor"
+
input_name
+
17
" but its type is not yet registered"
);
18
}
19
20
std::unique_ptr<ROperator>
op
;
21
22
float
attr_alpha
= 0.2;
23
float
attr_beta
= 0.5;
24
25
for
(
int_t
i = 0; i <
nodeproto
.attribute_size(); i++) {
26
std::string
attribute_name
=
nodeproto
.attribute(i).name();
27
if
(
attribute_name
==
"alpha"
)
28
attr_alpha
=
nodeproto
.attribute(i).f();
29
if
(
attribute_name
==
"beta"
)
30
attr_beta
=
nodeproto
.attribute(i).f();
31
}
32
33
std::string
output_name
=
nodeproto
.output(0);
34
switch
(
input_type
) {
35
case
ETensorType::FLOAT
:
36
op
.reset(
new
ROperator_HardSigmoid<float>
(
attr_alpha
,
attr_beta
,
input_name
,
output_name
));
37
break
;
38
default
:
39
throw
std::runtime_error(
"TMVA::SOFIE - Unsupported - Operator HardSigmoid does not yet support input type "
+
40
std::to_string(
static_cast<
int
>
(
input_type
)));
41
}
42
43
if
(!parser.
IsRegisteredTensorType
(
output_name
)) {
44
parser.
RegisterTensorType
(
output_name
,
input_type
);
45
}
46
47
return
op
;
48
};
49
50
}
// namespace SOFIE
51
}
// namespace Experimental
52
}
// namespace TMVA
RModelParser_ONNX.hxx
ROperator_HardSigmoid.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:423
TMVA::Experimental::SOFIE::RModelParser_ONNX::RegisterTensorType
void RegisterTensorType(const std::string &, ETensorType)
Definition
RModelParser_ONNX.cxx:418
TMVA::Experimental::SOFIE::RModelParser_ONNX::GetTensorType
ETensorType GetTensorType(const std::string &name)
Definition
RModelParser_ONNX.cxx:428
TMVA::Experimental::SOFIE::ETensorType
ETensorType
Definition
SOFIE_common.hxx:28
TMVA::Experimental::SOFIE::ETensorType::FLOAT
@ FLOAT
TMVA::Experimental::SOFIE::ParserFuncSignature
std::function< std::unique_ptr< ROperator >(RModelParser_ONNX &, const onnx::NodeProto &)> ParserFuncSignature
Definition
RModelParser_ONNX.hxx:25
TMVA::Experimental::SOFIE::int_t
std::int64_t int_t
Definition
SOFIE_common.hxx:55
TMVA::Experimental::SOFIE::ParseHardSigmoid
ParserFuncSignature ParseHardSigmoid
Definition
ParseHardSigmoid.cxx:9
TMVA
create variable transformations
Definition
GeneticMinimizer.h:22
tmva
sofie_parsers
src
ParseHardSigmoid.cxx
ROOTmaster - Reference Guide Generated on Fri Jul 17 2026 05:17:56 (GVA Time) using Doxygen 1.10.0