[core] Migrate SpaceToDepth operator to new API (#20530)
* Drop HostTensor and move to ov namespace * Drop HostTensor --------- Co-authored-by: Michal Lukaszewski <michal.lukaszewski@intel.com>
This commit is contained in:
parent
b9c64370fb
commit
301ea0beb0
@ -55,9 +55,7 @@ public:
|
||||
void validate_and_infer_types() override;
|
||||
std::shared_ptr<Node> clone_with_new_inputs(const OutputVector& new_args) const override;
|
||||
|
||||
OPENVINO_SUPPRESS_DEPRECATED_START
|
||||
bool evaluate(const HostTensorVector& outputs, const HostTensorVector& inputs) const override;
|
||||
OPENVINO_SUPPRESS_DEPRECATED_END
|
||||
bool evaluate(TensorVector& outputs, const TensorVector& inputs) const override;
|
||||
bool has_evaluate() const override;
|
||||
|
||||
protected:
|
||||
|
@ -2,40 +2,40 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
#include "ngraph/op/space_to_depth.hpp"
|
||||
#include "openvino/op/space_to_depth.hpp"
|
||||
|
||||
#include <cmath>
|
||||
#include <cstddef>
|
||||
#include <memory>
|
||||
#include <numeric>
|
||||
#include <space_to_depth_shape_inference.hpp>
|
||||
|
||||
#include "itt.hpp"
|
||||
#include "ngraph/attribute_visitor.hpp"
|
||||
#include "ngraph/builder/reshape.hpp"
|
||||
#include "ngraph/shape.hpp"
|
||||
#include "openvino/core/attribute_visitor.hpp"
|
||||
#include "openvino/core/shape.hpp"
|
||||
#include "openvino/reference/space_to_depth.hpp"
|
||||
#include "space_to_depth_shape_inference.hpp"
|
||||
|
||||
using namespace ngraph;
|
||||
|
||||
ov::op::v0::SpaceToDepth::SpaceToDepth(const Output<Node>& data, const SpaceToDepthMode& mode, size_t block_size)
|
||||
namespace ov {
|
||||
namespace op {
|
||||
namespace v0 {
|
||||
SpaceToDepth::SpaceToDepth(const Output<Node>& data, const SpaceToDepthMode& mode, size_t block_size)
|
||||
: Op({data}),
|
||||
m_blocksize(block_size),
|
||||
m_mode(mode) {
|
||||
constructor_validate_and_infer_types();
|
||||
}
|
||||
|
||||
ov::op::v0::SpaceToDepth::SpaceToDepth(const Output<Node>& data, const std::string& mode, size_t block_size)
|
||||
SpaceToDepth::SpaceToDepth(const Output<Node>& data, const std::string& mode, size_t block_size)
|
||||
: SpaceToDepth(data, as_enum<SpaceToDepthMode>(mode), block_size) {}
|
||||
|
||||
bool ngraph::op::v0::SpaceToDepth::visit_attributes(AttributeVisitor& visitor) {
|
||||
bool SpaceToDepth::visit_attributes(AttributeVisitor& visitor) {
|
||||
OV_OP_SCOPE(v0_SpaceToDepth_visit_attributes);
|
||||
visitor.on_attribute("block_size", m_blocksize);
|
||||
visitor.on_attribute("mode", m_mode);
|
||||
return true;
|
||||
}
|
||||
|
||||
std::shared_ptr<Node> ov::op::v0::SpaceToDepth::clone_with_new_inputs(const OutputVector& new_args) const {
|
||||
std::shared_ptr<Node> SpaceToDepth::clone_with_new_inputs(const OutputVector& new_args) const {
|
||||
OV_OP_SCOPE(v0_SpaceToDepth_clone_with_new_inputs);
|
||||
if (new_args.size() != 1) {
|
||||
OPENVINO_THROW("Incorrect number of new arguments");
|
||||
@ -43,7 +43,7 @@ std::shared_ptr<Node> ov::op::v0::SpaceToDepth::clone_with_new_inputs(const Outp
|
||||
return std::make_shared<SpaceToDepth>(new_args.at(0), m_mode, m_blocksize);
|
||||
}
|
||||
|
||||
void ngraph::op::v0::SpaceToDepth::validate_and_infer_types() {
|
||||
void SpaceToDepth::validate_and_infer_types() {
|
||||
OV_OP_SCOPE(v0_SpaceToDepth_validate_and_infer_types);
|
||||
|
||||
OPENVINO_SUPPRESS_DEPRECATED_START
|
||||
@ -52,61 +52,48 @@ void ngraph::op::v0::SpaceToDepth::validate_and_infer_types() {
|
||||
set_output_type(0, get_input_element_type(0), output_shape);
|
||||
}
|
||||
|
||||
OPENVINO_SUPPRESS_DEPRECATED_START
|
||||
namespace {
|
||||
bool evaluate_space_to_depth(const HostTensorVector& outputs,
|
||||
const HostTensorVector& inputs,
|
||||
const std::size_t block_size,
|
||||
const ov::op::v0::SpaceToDepth::SpaceToDepthMode mode) {
|
||||
bool SpaceToDepth::evaluate(TensorVector& outputs, const TensorVector& inputs) const {
|
||||
OV_OP_SCOPE(v0_SpaceToDepth_evaluate);
|
||||
OPENVINO_ASSERT(outputs.size() == 1);
|
||||
|
||||
const auto& in = inputs[0];
|
||||
const auto& out = outputs[0];
|
||||
size_t elem_size = in->get_element_type().size();
|
||||
|
||||
if (in->get_partial_shape().is_dynamic()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ov::reference::space_to_depth(in->get_data_ptr<char>(),
|
||||
in->get_shape(),
|
||||
out->get_data_ptr<char>(),
|
||||
out->get_shape(),
|
||||
block_size,
|
||||
mode,
|
||||
elem_size);
|
||||
reference::space_to_depth(static_cast<const char*>(in.data()),
|
||||
in.get_shape(),
|
||||
static_cast<char*>(out.data()),
|
||||
out.get_shape(),
|
||||
m_blocksize,
|
||||
m_mode,
|
||||
in.get_element_type().size());
|
||||
return true;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
bool ngraph::op::v0::SpaceToDepth::evaluate(const HostTensorVector& outputs, const HostTensorVector& inputs) const {
|
||||
OV_OP_SCOPE(v0_SpaceToDepth_evaluate);
|
||||
return evaluate_space_to_depth(outputs, inputs, m_blocksize, m_mode);
|
||||
}
|
||||
|
||||
bool ngraph::op::v0::SpaceToDepth::has_evaluate() const {
|
||||
bool SpaceToDepth::has_evaluate() const {
|
||||
OV_OP_SCOPE(v0_SpaceToDepth_has_evaluate);
|
||||
return !get_input_partial_shape(0).is_dynamic();
|
||||
}
|
||||
|
||||
void op::v0::SpaceToDepth::set_block_size(size_t block_size) {
|
||||
void SpaceToDepth::set_block_size(size_t block_size) {
|
||||
m_blocksize = block_size;
|
||||
}
|
||||
|
||||
void op::v0::SpaceToDepth::set_mode(SpaceToDepthMode mode) {
|
||||
void SpaceToDepth::set_mode(SpaceToDepthMode mode) {
|
||||
m_mode = mode;
|
||||
}
|
||||
} // namespace v0
|
||||
} // namespace op
|
||||
|
||||
std::ostream& ov::operator<<(std::ostream& s, const op::v0::SpaceToDepth::SpaceToDepthMode& type) {
|
||||
std::ostream& operator<<(std::ostream& s, const op::v0::SpaceToDepth::SpaceToDepthMode& type) {
|
||||
return s << as_string(type);
|
||||
}
|
||||
|
||||
namespace ov {
|
||||
template <>
|
||||
NGRAPH_API EnumNames<ngraph::op::v0::SpaceToDepth::SpaceToDepthMode>&
|
||||
EnumNames<ngraph::op::v0::SpaceToDepth::SpaceToDepthMode>::get() {
|
||||
static auto enum_names = EnumNames<ngraph::op::v0::SpaceToDepth::SpaceToDepthMode>(
|
||||
OPENVINO_API EnumNames<op::v0::SpaceToDepth::SpaceToDepthMode>&
|
||||
EnumNames<op::v0::SpaceToDepth::SpaceToDepthMode>::get() {
|
||||
static auto enum_names = EnumNames<op::v0::SpaceToDepth::SpaceToDepthMode>(
|
||||
"op::v0::SpaceToDepth::SpaceToDepthMode",
|
||||
{{"blocks_first", ngraph::op::v0::SpaceToDepth::SpaceToDepthMode::BLOCKS_FIRST},
|
||||
{"depth_first", ngraph::op::v0::SpaceToDepth::SpaceToDepthMode::DEPTH_FIRST}});
|
||||
{{"blocks_first", op::v0::SpaceToDepth::SpaceToDepthMode::BLOCKS_FIRST},
|
||||
{"depth_first", op::v0::SpaceToDepth::SpaceToDepthMode::DEPTH_FIRST}});
|
||||
return enum_names;
|
||||
}
|
||||
} // namespace ov
|
||||
|
Loading…
Reference in New Issue
Block a user