From 4a5452f29b75783bdcb70cd14816c1b2dcea1038 Mon Sep 17 00:00:00 2001 From: Roman Kazantsev Date: Thu, 16 Feb 2023 15:48:00 +0100 Subject: [PATCH] [TF FE] Optimize DynamicPartition translator (#15750) * [TF FE] Optimize DynamicPartition translator It avoid squared complexity to compute split lengths for each partition Signed-off-by: Kazantsev, Roman * WA a bug in Unique operation: not use axis --------- Signed-off-by: Kazantsev, Roman --- .../src/op/dynamic_partition.cpp | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/src/frontends/tensorflow_common/src/op/dynamic_partition.cpp b/src/frontends/tensorflow_common/src/op/dynamic_partition.cpp index 6acc7526646..54782d19e70 100644 --- a/src/frontends/tensorflow_common/src/op/dynamic_partition.cpp +++ b/src/frontends/tensorflow_common/src/op/dynamic_partition.cpp @@ -5,11 +5,11 @@ #include #include "common_op_table.hpp" -#include "openvino/opsets/opset9.hpp" +#include "openvino/opsets/opset10.hpp" using namespace std; using namespace ov; -using namespace ov::opset9; +using namespace ov::opset10; namespace ov { namespace frontend { @@ -29,23 +29,18 @@ OutputVector translate_dynamic_partition_op(const NodeContext& node) { auto num_partitions = node.get_attribute("num_partitions"); // compute how many slices are collected for each partition - // that will be used as split_legths - auto start = make_shared(partitions_type, Shape{}, 0); - auto end = make_shared(partitions_type, Shape{}, num_partitions); - auto step = make_shared(partitions_type, Shape{}, 1); - auto range_num_parts = make_shared(start, end, step, partitions_type); - - auto unsqueeze_axis1 = make_shared(element::i64, Shape{1}, 0); - auto unsqueeze_partitions = make_shared(norm_partitions, unsqueeze_axis1); - auto unsqueeze_axis2 = make_shared(element::i64, Shape{1}, 1); - auto unsqueeze_range = make_shared(range_num_parts, unsqueeze_axis2); - - auto mask = make_shared(unsqueeze_range, unsqueeze_partitions); - auto mask_0_1 = make_shared