Skip to content

Commit da8021e

Browse files
committed
rename convolution biased -> convolution
1 parent d79ad4c commit da8021e

File tree

16 files changed

+230
-234
lines changed

16 files changed

+230
-234
lines changed

docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/convolution-biased.rst docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/convolution.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
ConvolutionBiased
2-
=================
1+
Convolution
2+
===========
33

44

55
.. meta::
6-
:description: Learn about ConvolutionBiased - a 1D, 2D or 3D convolution operation with bias, which
6+
:description: Learn about Convolution - a 1D, 2D or 3D convolution operation with bias, which
77
can be performed on input and kernel tensors in OpenVINO.
88

9-
**Versioned name**: *ConvolutionBiased*
9+
**Versioned name**: *Convolution*
1010

1111
**Category**: *Convolution*
1212

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Copyright (C) 2025 Intel Corporation
2+
// SPDX-License-Identifier: Apache-2.0
3+
//
4+
5+
#pragma once
6+
7+
#include "openvino/core/coordinate_diff.hpp"
8+
#include "openvino/core/node.hpp"
9+
#include "openvino/op/op.hpp"
10+
#include "openvino/op/util/convolution_base.hpp"
11+
#include "transformations_visibility.hpp"
12+
13+
namespace ov {
14+
namespace op {
15+
namespace internal {
16+
17+
class TRANSFORMATIONS_API Convolution : public ov::op::util::ConvolutionFwdPropBase {
18+
public:
19+
OPENVINO_OP("Convolution", "ie_internal_opset", ov::op::util::ConvolutionFwdPropBase);
20+
21+
Convolution() = default;
22+
23+
Convolution(const Output<Node>& data_batch,
24+
const Output<Node>& filters,
25+
const Strides& strides,
26+
const CoordinateDiff& pads_begin,
27+
const CoordinateDiff& pads_end,
28+
const Strides& dilations,
29+
const PadType& auto_pad = PadType::EXPLICIT);
30+
31+
Convolution(const Output<Node>& data_batch,
32+
const Output<Node>& filters,
33+
const Output<Node>& bias,
34+
const Strides& strides,
35+
const CoordinateDiff& pads_begin,
36+
const CoordinateDiff& pads_end,
37+
const Strides& dilations,
38+
const PadType& auto_pad = PadType::EXPLICIT);
39+
40+
void validate_and_infer_types() override;
41+
bool visit_attributes(AttributeVisitor& visitor) override;
42+
43+
std::shared_ptr<Node> clone_with_new_inputs(const OutputVector& new_args) const override;
44+
};
45+
46+
} // namespace internal
47+
} // namespace op
48+
} // namespace ov

src/common/transformations/include/ov_ops/convolution_biased.hpp

-48
This file was deleted.

src/common/transformations/include/transformations/op_conversions/convert_convolution_to_convolution_biased.hpp

-22
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright (C) 2018-2025 Intel Corporation
2+
// SPDX-License-Identifier: Apache-2.0
3+
//
4+
5+
#pragma once
6+
7+
#include "openvino/pass/matcher_pass.hpp"
8+
#include "transformations_visibility.hpp"
9+
10+
namespace ov {
11+
namespace pass {
12+
13+
class TRANSFORMATIONS_API ConvertConvolutionToConvolutionInternal;
14+
15+
} // namespace pass
16+
} // namespace ov
17+
18+
class ov::pass::ConvertConvolutionToConvolutionInternal : public ov::pass::MatcherPass {
19+
public:
20+
OPENVINO_MATCHER_PASS_RTTI("ConvertConvolutionToConvolutionInternal");
21+
ConvertConvolutionToConvolutionInternal();
22+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
// Copyright (C) 2018-2025 Intel Corporation
2+
// SPDX-License-Identifier: Apache-2.0
3+
//
4+
5+
#include "ov_ops/convolution.hpp"
6+
7+
#include "convolution_shape_inference.hpp"
8+
#include "itt.hpp"
9+
#include "openvino/op/util/precision_sensitive_attribute.hpp"
10+
11+
using namespace std;
12+
13+
namespace ov {
14+
op::internal::Convolution::Convolution(const Output<Node>& data_batch,
15+
const Output<Node>& filters,
16+
const Strides& strides,
17+
const CoordinateDiff& pads_begin,
18+
const CoordinateDiff& pads_end,
19+
const Strides& dilations,
20+
const PadType& auto_pad)
21+
: op::util::ConvolutionFwdPropBase({data_batch, filters}, strides, pads_begin, pads_end, dilations, auto_pad) {
22+
constructor_validate_and_infer_types();
23+
}
24+
25+
op::internal::Convolution::Convolution(const Output<Node>& data_batch,
26+
const Output<Node>& filters,
27+
const Output<Node>& bias,
28+
const Strides& strides,
29+
const CoordinateDiff& pads_begin,
30+
const CoordinateDiff& pads_end,
31+
const Strides& dilations,
32+
const PadType& auto_pad)
33+
: op::util::ConvolutionFwdPropBase({data_batch, filters, bias},
34+
strides,
35+
pads_begin,
36+
pads_end,
37+
dilations,
38+
auto_pad) {
39+
constructor_validate_and_infer_types();
40+
}
41+
42+
bool op::internal::Convolution::visit_attributes(AttributeVisitor& visitor) {
43+
visitor.on_attribute("strides", m_strides);
44+
visitor.on_attribute("dilations", m_dilations);
45+
visitor.on_attribute("pads_begin", m_pads_begin);
46+
visitor.on_attribute("pads_end", m_pads_end);
47+
visitor.on_attribute("auto_pad", m_auto_pad);
48+
return true;
49+
}
50+
51+
void op::internal::Convolution::validate_and_infer_types() {
52+
const auto& data_batch_et = get_input_element_type(0);
53+
const auto& filters_et = get_input_element_type(1);
54+
55+
element::Type result_et;
56+
if (inputs().size() == 3) {
57+
const auto& bias_et = get_input_element_type(2);
58+
result_et = bias_et;
59+
} else {
60+
element::Type::merge(result_et, data_batch_et, filters_et);
61+
}
62+
63+
NODE_VALIDATION_CHECK(this,
64+
result_et.is_real() || result_et.is_integral_number(),
65+
"Element types must be numeric. Got: ",
66+
result_et);
67+
68+
const auto input_shapes = ov::util::get_node_input_partial_shapes(*this);
69+
70+
auto num_spatial = convolution::calculate_num_spatial(this, input_shapes);
71+
if (num_spatial != util::num_spatial_undefined) {
72+
resize_attributes(num_spatial);
73+
}
74+
75+
const auto output_shapes = op::shape_infer(this, input_shapes, m_pads_begin, m_pads_end);
76+
set_output_type(0, result_et, output_shapes[0]);
77+
set_num_spatial(num_spatial, input_shapes);
78+
}
79+
80+
shared_ptr<Node> op::internal::Convolution::clone_with_new_inputs(const OutputVector& new_args) const {
81+
check_new_args_count(this, new_args);
82+
if (new_args.size() == 2) {
83+
return make_shared<internal::Convolution>(new_args.at(0),
84+
new_args.at(1),
85+
m_strides,
86+
m_pads_begin,
87+
m_pads_end,
88+
m_dilations,
89+
m_auto_pad);
90+
}
91+
return make_shared<internal::Convolution>(new_args.at(0),
92+
new_args.at(1),
93+
new_args.at(2),
94+
m_strides,
95+
m_pads_begin,
96+
m_pads_end,
97+
m_dilations,
98+
m_auto_pad);
99+
}
100+
101+
} // namespace ov

src/common/transformations/src/ov_ops/convolution_biased.cpp

-101
This file was deleted.

0 commit comments

Comments
 (0)