conv_bias_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 <functional>
9 
10 #include <transformations_visibility.hpp>
11 
12 #include <ngraph/ngraph.hpp>
13 
14 #include "ngraph/pattern/matcher.hpp"
15 #include "ngraph/op/broadcast.hpp"
16 #include "ngraph/op/reshape.hpp"
17 #include "ngraph/op/add.hpp"
18 
19 #include "ngraph_ops/convolution_ie.hpp"
20 #include "ngraph_ops/deconvolution_ie.hpp"
21 #include "ngraph/op/group_conv.hpp"
22 #include "ngraph/rt_info.hpp"
23 
24 #include <ngraph/pass/graph_rewrite.hpp>
25 
26 namespace ngraph {
27 namespace pass {
28 
29 class TRANSFORMATIONS_API ConvFusion;
30 class TRANSFORMATIONS_API ConvAddFusion;
31 class TRANSFORMATIONS_API ConvMultiplyFusion;
32 class TRANSFORMATIONS_API DeconvAddFusion;
33 
34 } // namespace pass
35 } // namespace ngraph
36 
37 class ngraph::pass::ConvAddFusion: public ngraph::pass::MatcherPass {
38 public:
39  NGRAPH_RTTI_DECLARATION;
40  ConvAddFusion();
41 };
42 
43 class ngraph::pass::ConvMultiplyFusion: public ngraph::pass::MatcherPass {
44 public:
45  NGRAPH_RTTI_DECLARATION;
47 };
48 
49 class ngraph::pass::DeconvAddFusion: public ngraph::pass::MatcherPass {
50 public:
51  NGRAPH_RTTI_DECLARATION;
53 };
54 
55 class ngraph::pass::ConvFusion: public ngraph::pass::GraphRewrite {
56 public:
57  NGRAPH_RTTI_DECLARATION;
58  ConvFusion() {
59  add_matcher<ngraph::pass::ConvAddFusion>();
60  add_matcher<ngraph::pass::ConvMultiplyFusion>();
61  add_matcher<ngraph::pass::DeconvAddFusion>();
62  }
63 };
Definition: conv_bias_fusion.hpp:37
Definition: conv_bias_fusion.hpp:55
Definition: conv_bias_fusion.hpp:43
Definition: conv_bias_fusion.hpp:49
ngraph namespace
Definition: add_fake_quantize_fusion.hpp:14