From ec2ae003aac381d9a8b948b1f48fa38bb730c1df Mon Sep 17 00:00:00 2001 From: Siddhant Chauhan Date: Fri, 20 Oct 2023 03:28:58 +0530 Subject: [PATCH] [TF FE][TF Hub] Support TruncateDiv operation (#20615) * [TF FE][TF Hub] Support TruncateDiv operation * [TF FE][TF Hub] Support TruncateDiv operation * Update src/frontends/tensorflow_common/src/op/truncate_div.cpp --------- Co-authored-by: Roman Kazantsev --- src/frontends/tensorflow/src/op_table.cpp | 1 + .../include/common_op_table.hpp | 1 + .../tensorflow_common/src/op/truncate_div.cpp | 36 ++++++++++++++ .../tensorflow_tests/test_tf_TruncateDiv.py | 49 +++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 src/frontends/tensorflow_common/src/op/truncate_div.cpp create mode 100644 tests/layer_tests/tensorflow_tests/test_tf_TruncateDiv.py diff --git a/src/frontends/tensorflow/src/op_table.cpp b/src/frontends/tensorflow/src/op_table.cpp index 75512bce97b..41db5dab3c3 100644 --- a/src/frontends/tensorflow/src/op_table.cpp +++ b/src/frontends/tensorflow/src/op_table.cpp @@ -281,6 +281,7 @@ const std::map get_supported_ops() { {"TopK", CreatorFunction(translate_top_k_op)}, {"TopKV2", CreatorFunction(translate_top_k_v2_op)}, {"Transpose", CreatorFunction(translate_transpose_op)}, + {"TruncateDiv", CreatorFunction(translate_truncate_div_op)}, {"TruncateMod", CreatorFunction(translate_truncate_mod_op)}, {"Unpack", CreatorFunction(translate_unpack_op)}, {"UnravelIndex", CreatorFunction(translate_unravel_index_op)}, diff --git a/src/frontends/tensorflow_common/include/common_op_table.hpp b/src/frontends/tensorflow_common/include/common_op_table.hpp index 1004cb6e0c2..49c09560a7a 100644 --- a/src/frontends/tensorflow_common/include/common_op_table.hpp +++ b/src/frontends/tensorflow_common/include/common_op_table.hpp @@ -145,6 +145,7 @@ OP_CONVERTER(translate_tile_op); OP_CONVERTER_NAMED(translate_top_k_op); OP_CONVERTER_NAMED(translate_top_k_v2_op); OP_CONVERTER(translate_transpose_op); +OP_CONVERTER(translate_truncate_div_op); OP_CONVERTER(translate_truncate_mod_op); OP_CONVERTER(translate_unpack_op); OP_CONVERTER(translate_unravel_index_op); diff --git a/src/frontends/tensorflow_common/src/op/truncate_div.cpp b/src/frontends/tensorflow_common/src/op/truncate_div.cpp new file mode 100644 index 00000000000..b725bbd76b4 --- /dev/null +++ b/src/frontends/tensorflow_common/src/op/truncate_div.cpp @@ -0,0 +1,36 @@ +// Copyright (C) 2018-2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "common_op_table.hpp" +#include "openvino/op/ceiling.hpp" +#include "openvino/op/divide.hpp" +#include "openvino/op/equal.hpp" +#include "openvino/op/floor.hpp" +#include "openvino/op/less.hpp" +#include "openvino/op/mod.hpp" +#include "openvino/op/select.hpp" + +using namespace std; +using namespace ov::opset10; + +namespace ov { +namespace frontend { +namespace tensorflow { +namespace op { +OutputVector translate_truncate_div_op(const NodeContext& node) { + default_op_checks(node, 2, {"TruncateDiv"}); + auto x = node.get_input(0); + auto y = node.get_input(1); + + auto res = make_shared(x, y); + auto is_res_negative = make_shared(res, create_same_type_const_scalar(x, 0)); + auto final_res = make_shared