// Copyright (C) 2018-2025 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // #pragma once #include "openvino/op/op.hpp" namespace ov { namespace op { namespace v15 { /// \brief Operator combining sliding blocks into an image tensor /// \ingroup ov_ops_cpp_api class OPENVINO_API Col2Im : public ov::op::Op { public: OPENVINO_OP("Col2Im", "opset15", ov::op::Op); Col2Im() = default; /// \brief Constructs a Col2Im operation. /// /// \param data Input tensor with data /// \param output_size Shape of the spatial dimensions of the output image /// \param kernel_size Size of the sliding blocks /// \param strides Stride in the sliding blocks in the input spatial dimensions /// \param dilations Local stride of the elements /// \param pads_begin Paddings at the beginning of each spatial axis, if undefined no padding is applied /// \param pads_end Paddings at the end of each spatial axis, if undefined no padding is applied Col2Im(const Output& data, const Output& output_size, const Output& kernel_size, const Strides& strides = Strides{1, 1}, const Strides& dilations = Strides{1, 1}, const Shape& pads_begin = Shape{0, 0}, const Shape& pads_end = Shape{0, 0}); bool visit_attributes(AttributeVisitor& visitor) override; void validate_and_infer_types() override; std::shared_ptr clone_with_new_inputs(const OutputVector& new_args) const override; const Strides& get_strides() const; const Strides& get_dilations() const; const Shape& get_pads_begin() const; const Shape& get_pads_end() const; void set_strides(const Strides& strides) { m_strides = strides; }; void set_dilations(const Strides& dilations) { m_dilations = dilations; }; void set_pads_begin(const Shape& pads_begin) { m_pads_begin = pads_begin; }; void set_pads_end(const Shape& pads_end) { m_pads_end = pads_end; }; private: Strides m_strides; Strides m_dilations; Shape m_pads_begin; Shape m_pads_end; }; } // namespace v15 } // namespace op } // namespace ov