1 // Copyright (C) 2020 Intel Corporation
2 // SPDX-License-Identifier: Apache-2.0
5 #include "low_precision/group_convolution.hpp"
11 #include "low_precision/network_helper.hpp"
15 namespace low_precision {
17 GroupConvolutionTransformation::GroupConvolutionTransformation(const Params& params) : ConvolutionTransformation(params) {
20 void GroupConvolutionTransformation::registerMatcherIn(GraphRewrite &pass, TransformationContext &context) const {
21 // question to nGraph: why it doesn't work
25 // make_op_pattern<opset1::GroupConvolution>({ make_op_label<opset1::Multiply>(), make_op_label<opset1::FakeQuantize>()}));
27 addSingleNodePattern<opset1::GroupConvolution>(pass, context);
30 bool GroupConvolutionTransformation::isQuantized(std::shared_ptr<Node> layer) const noexcept {
31 return WeightableLayerTransformation::isQuantized(layer, true);
34 bool GroupConvolutionTransformation::transform(TransformationContext &context, ngraph::pattern::Matcher &m) const {
35 auto convolution = m.get_match_root();
36 if (!GroupConvolutionTransformation::canBeTransformed(context, convolution)) {
40 ConvolutionTransformation::transform(context, m);
44 } // namespace low_precision