hsigmoid_fusion.hpp
1 // Copyright (C) 2018-2021 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
3 //
4 
5 #pragma once
6 
7 #include <memory>
8 #include <utility>
9 
10 #include <transformations_visibility.hpp>
11 #include <ngraph/pass/graph_rewrite.hpp>
12 
13 namespace ngraph {
14 namespace pass {
15 
16 class TRANSFORMATIONS_API HSigmoidFusion;
17 class TRANSFORMATIONS_API HSigmoidFusionWithReluDiv;
18 class TRANSFORMATIONS_API HSigmoidFusionWithReluMul;
19 class TRANSFORMATIONS_API HSigmoidFusionWithoutRelu;
20 class TRANSFORMATIONS_API HSigmoidFusionWithClamp;
21 
22 } // namespace pass
23 } // namespace ngraph
24 
25 /**
26  * @ingroup ie_transformation_common_api
27  * @brief HSigmoidFusion transformation replaces a sub-graph (x * (min(Relu(x + 3), 6))) / 6 with a HSigmoid op.
28  */
29 class ngraph::pass::HSigmoidFusionWithReluDiv: public ngraph::pass::MatcherPass {
30 public:
31  NGRAPH_RTTI_DECLARATION;
33 };
34 
35 /**
36  * @ingroup ie_transformation_common_api
37  * @brief HSigmoidFusion transformation replaces a sub-graph (x * (min(Relu(x + 3), 6)) * const(1/6) with a HSigmoid op.
38  */
39 class ngraph::pass::HSigmoidFusionWithReluMul: public ngraph::pass::MatcherPass {
40 public:
41  NGRAPH_RTTI_DECLARATION;
43 };
44 
45 /**
46  * @ingroup ie_transformation_common_api
47  * @brief HSigmoidFusion transformation replaces a sub-graph x * (min(max(x + 3, 0), 6) / 6) with a HSigmoid op.
48  */
49 class ngraph::pass::HSigmoidFusionWithoutRelu: public ngraph::pass::MatcherPass {
50 public:
51  NGRAPH_RTTI_DECLARATION;
53 };
54 
55 /**
56  * @ingroup ie_transformation_common_api
57  * @brief HSigmoidFusion transformation replaces a sub-graph x * (Clamp(x + 3, 0, 6) * const(1/6)) with a HSigmoid op.
58  */
59 class ngraph::pass::HSigmoidFusionWithClamp: public ngraph::pass::MatcherPass {
60 public:
61  NGRAPH_RTTI_DECLARATION;
63 };
64 
65 /**
66  * @ingroup ie_transformation_common_api
67  * @brief HSigmoidFusion transformation replaces various sub-graphs with a HSigmoid op.
68  */
69 class ngraph::pass::HSigmoidFusion: public ngraph::pass::GraphRewrite {
70 public:
71  NGRAPH_RTTI_DECLARATION;
72  HSigmoidFusion() {
73  add_matcher<ngraph::pass::HSigmoidFusionWithReluDiv>();
74  add_matcher<ngraph::pass::HSigmoidFusionWithReluMul>();
75  add_matcher<ngraph::pass::HSigmoidFusionWithoutRelu>();
76  add_matcher<ngraph::pass::HSigmoidFusionWithClamp>();
77  }
78 };
HSigmoidFusion transformation replaces a sub-graph x * (Clamp(x + 3, 0, 6) * const(1/6)) with a HSigm...
Definition: hsigmoid_fusion.hpp:59
HSigmoidFusion transformation replaces a sub-graph (x * (min(Relu(x + 3), 6))) / 6 with a HSigmoid op...
Definition: hsigmoid_fusion.hpp:29
HSigmoidFusion transformation replaces a sub-graph (x * (min(Relu(x + 3), 6)) * const(1/6) with a HSi...
Definition: hsigmoid_fusion.hpp:39
HSigmoidFusion transformation replaces a sub-graph x * (min(max(x + 3, 0), 6) / 6) with a HSigmoid op...
Definition: hsigmoid_fusion.hpp:49
HSigmoidFusion transformation replaces various sub-graphs with a HSigmoid op.
Definition: hsigmoid_fusion.hpp:69
ngraph namespace
Definition: add_fake_quantize_fusion.hpp:14