diff --git a/src/frontends/tensorflow_common/src/op/linspace.cpp b/src/frontends/tensorflow_common/src/op/linspace.cpp index 8bf92617e37..43902fc1a05 100644 --- a/src/frontends/tensorflow_common/src/op/linspace.cpp +++ b/src/frontends/tensorflow_common/src/op/linspace.cpp @@ -27,10 +27,15 @@ OutputVector translate_linspace_op(const NodeContext& node) { Output delta = make_shared(stop, start); delta = make_shared(delta, num_minus_one); + // generate a range of numbers [0, 1, ..., num) + // to have exact numbers of elements equal to num + auto const_zero = make_shared(num.get_element_type(), Shape{}, 0); + auto range0_n = make_shared(const_zero, num, const_one, start.get_element_type()); + // compute the result - auto stop_plus_delta = make_shared(stop, delta); - auto linspace = make_shared(start, stop_plus_delta, delta, start.get_element_type()); - set_node_name(node.get_name(), linspace); + Output linspace = make_shared(range0_n, delta); + linspace = make_shared(linspace, start); + set_node_name(node.get_name(), linspace.get_node_shared_ptr()); return {linspace}; } } // namespace op