From e2a1bd78a4f9e2cafacccc32e66af8c044bac3e4 Mon Sep 17 00:00:00 2001 From: Evgenya Stepyreva Date: Mon, 23 Jan 2023 19:33:21 +0400 Subject: [PATCH] Tensorflow Common new (#15192) * Moved files to another directory * Rename header op_table.hpp to common_op_table.hpp for all files in src/frontends/tensorflow_common/src/op/ * Removed visability macroses * CMake changes * Unit-test execution in .ci * Update labeler.yml * Codeowners * Style check and fix * Static Build arrangement * Addressing the comments * install common headers to previous place * New approach with public decoder and graph_iterator * New approach with public decoder and graph_iterator * Move GraphIterator back * Comments addressed * Comments adressed * Preliminary TF FE README.md changes * Added target_compile_definitions OPENVINO_STATIC_LIBRARY for static build --- .ci/azure/linux.yml | 3 + .ci/azure/linux_debian.yml | 6 + .ci/azure/windows.yml | 3 + .github/CODEOWNERS | 1 + .github/labeler.yml | 1 + src/frontends/CMakeLists.txt | 1 + .../include/openvino/frontend/decoder.hpp | 32 ++++ .../openvino/frontend/node_context.hpp | 4 + src/frontends/common/src/decoder.cpp | 9 ++ src/frontends/tensorflow/README.md | 15 +- .../openvino/frontend/tensorflow/decoder.hpp | 34 +--- .../frontend/tensorflow/exception.hpp | 25 +-- .../frontend/tensorflow/graph_iterator.hpp | 2 +- .../frontend/tensorflow/node_context.hpp | 2 +- src/frontends/tensorflow/src/CMakeLists.txt | 19 +-- src/frontends/tensorflow/src/exception.cpp | 19 --- .../tensorflow/src/op/block_lstm.cpp | 5 +- .../tensorflow/src/op/gru_block_cell.cpp | 5 +- src/frontends/tensorflow/src/op/if.cpp | 2 +- .../tensorflow/src/op/partitioned_call.cpp | 2 +- .../tensorflow/src/op/sparse_reshape.cpp | 9 +- src/frontends/tensorflow/src/op/while.cpp | 2 +- src/frontends/tensorflow/src/op_table.cpp | 133 ++-------------- src/frontends/tensorflow/tests/CMakeLists.txt | 2 +- .../tensorflow_common/CMakeLists.txt | 9 ++ .../include/common_op_table.hpp | 146 ++++++++++++++++++ .../include}/helper_ops/block_lstm.hpp | 0 .../include}/helper_ops/gru_block_cell.hpp | 0 .../helper_ops/internal_operation.hpp | 4 +- .../helper_ops/sparse_fill_empty_rows.hpp | 2 +- .../helper_ops/sparse_segment_ops.hpp | 0 .../helper_ops/unsupported_constant.hpp | 0 .../helper_transforms/block_lstm_replacer.hpp | 1 - .../embedding_segments_feature_fusing.hpp | 0 .../gru_block_cell_replacer.hpp | 1 - .../include}/openvino_conversions.hpp | 0 .../include}/pass/transpose_sinking.hpp | 0 .../include}/place.hpp | 2 +- .../include}/tf_framework_node.hpp | 2 +- .../include}/utils.hpp | 9 +- .../tensorflow_common/src/CMakeLists.txt | 26 ++++ .../helper_transforms/block_lstm_replacer.cpp | 0 .../embedding_segments_feature_fusing.cpp | 0 .../gru_block_cell_replacer.cpp | 0 .../src/op/addN.cpp | 2 +- .../src/op/arg_min_max.cpp | 2 +- .../src/op/argdef_ops.cpp | 2 +- .../src/op/assert.cpp | 2 +- .../src/op/avg_pool.cpp | 2 +- .../src/op/bias_add.cpp | 2 +- .../src/op/binary_op.cpp | 2 +- .../src/op/broadcast_args.cpp | 2 +- .../src/op/broadcast_to.cpp | 2 +- .../src/op/bucketize.cpp | 2 +- .../src/op/cast.cpp | 2 +- .../src/op/clip_by_value.cpp | 2 +- .../src/op/concat.cpp | 2 +- .../src/op/const.cpp | 2 +- .../src/op/conv_2d.cpp | 2 +- .../src/op/conv_2d_backprop.cpp | 2 +- .../src/op/conv_3d.cpp | 2 +- .../src/op/conv_3d_backprop.cpp | 2 +- .../src/op/crop_and_resize.cpp | 2 +- .../src/op/ctc_greedy_decoder.cpp | 2 +- .../src/op/ctc_loss.cpp | 2 +- .../src/op/cumsum.cpp | 2 +- .../src/op/depth_to_space.cpp | 2 +- .../src/op/depthwise_conv_2d.cpp | 2 +- .../src/op/dynamic_partition.cpp | 2 +- .../src/op/einsum.cpp | 2 +- .../src/op/elu.cpp | 3 +- .../src/op/expand_dims.cpp | 2 +- .../src/op/extract_image_patches.cpp | 2 +- .../src/op/fake_quant_min_max_vars.cpp | 2 +- .../src/op/fill.cpp | 2 +- .../src/op/fused_batch_norm.cpp | 2 +- .../src/op/gather.cpp | 2 +- .../src/op/identity.cpp | 2 +- .../src/op/interpolate.cpp | 2 +- .../src/op/l2_loss.cpp | 2 +- .../src/op/leaky_relu.cpp | 2 +- .../src/op/linspace.cpp | 2 +- .../src/op/list_diff.cpp | 2 +- .../src/op/log1p.cpp | 2 +- .../src/op/log_softmax.cpp | 2 +- .../src/op/lrn.cpp | 2 +- .../src/op/matmul.cpp | 2 +- .../src/op/matrix_diag.cpp | 2 +- .../src/op/max_pool.cpp | 2 +- .../src/op/no_op.cpp | 2 +- .../src/op/non_max_suppression.cpp | 2 +- .../src/op/normalize_l2.cpp | 2 +- .../src/op/one_hot.cpp | 2 +- .../src/op/pack.cpp | 2 +- .../src/op/pad.cpp | 2 +- .../src/op/parallel_dynamic_stitch.cpp | 2 +- .../src/op/placeholder.cpp | 2 +- .../src/op/random_uniform.cpp | 2 +- .../src/op/range.cpp | 2 +- .../src/op/rank.cpp | 2 +- .../src/op/reciprocal.cpp | 2 +- .../src/op/reduce.cpp | 2 +- .../src/op/relu_6.cpp | 2 +- .../src/op/reshape.cpp | 2 +- .../src/op/reverse.cpp | 2 +- .../src/op/reverse_sequence.cpp | 2 +- .../src/op/roll.cpp | 2 +- .../src/op/round.cpp | 2 +- .../src/op/rsqrt.cpp | 2 +- .../src/op/scatter_nd.cpp | 2 +- .../src/op/segment_sum.cpp | 2 +- .../src/op/select.cpp | 2 +- .../src/op/shape.cpp | 2 +- .../src/op/size.cpp | 2 +- .../src/op/slice.cpp | 2 +- .../src/op/softmax.cpp | 2 +- .../src/op/space_to_batch_nd.cpp | 2 +- .../src/op/space_to_depth.cpp | 2 +- .../src/op/sparse_to_dense.cpp | 2 +- .../src/op/split.cpp | 2 +- .../src/op/sqrt.cpp | 2 +- .../src/op/square.cpp | 2 +- .../src/op/squeeze.cpp | 2 +- .../src/op/strided_slice.cpp | 2 +- .../src/op/tile.cpp | 2 +- .../src/op/top_k.cpp | 2 +- .../src/op/transpose.cpp | 2 +- .../src/op/unary_op.cpp | 2 +- .../src/op/unique.cpp | 2 +- .../src/op/unpack.cpp | 2 +- .../src/op/where.cpp | 2 +- .../src/op/xdivy.cpp | 2 +- .../src/op/zeros_like.cpp | 2 +- .../src/openvino_conversions.cpp | 0 .../src/pass/transpose_sinking.cpp | 0 .../src/place.cpp | 2 +- .../src/utils.cpp | 8 +- .../tensorflow_common/tests/CMakeLists.txt | 17 ++ .../tests/block_lstm_replacer.cpp | 0 .../tests/gru_block_cell_replacer.cpp | 0 .../tests/transpose_sinking.cpp | 0 141 files changed, 412 insertions(+), 332 deletions(-) create mode 100644 src/frontends/common/src/decoder.cpp delete mode 100644 src/frontends/tensorflow/src/exception.cpp create mode 100644 src/frontends/tensorflow_common/CMakeLists.txt create mode 100644 src/frontends/tensorflow_common/include/common_op_table.hpp rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_ops/block_lstm.hpp (100%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_ops/gru_block_cell.hpp (100%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_ops/internal_operation.hpp (94%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_ops/sparse_fill_empty_rows.hpp (98%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_ops/sparse_segment_ops.hpp (100%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_ops/unsupported_constant.hpp (100%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_transforms/block_lstm_replacer.hpp (92%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_transforms/embedding_segments_feature_fusing.hpp (100%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/helper_transforms/gru_block_cell_replacer.hpp (92%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/openvino_conversions.hpp (100%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/pass/transpose_sinking.hpp (100%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/place.hpp (99%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/tf_framework_node.hpp (96%) rename src/frontends/{tensorflow/src => tensorflow_common/include}/utils.hpp (87%) create mode 100644 src/frontends/tensorflow_common/src/CMakeLists.txt rename src/frontends/{tensorflow => tensorflow_common}/src/helper_transforms/block_lstm_replacer.cpp (100%) rename src/frontends/{tensorflow => tensorflow_common}/src/helper_transforms/embedding_segments_feature_fusing.cpp (100%) rename src/frontends/{tensorflow => tensorflow_common}/src/helper_transforms/gru_block_cell_replacer.cpp (100%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/addN.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/arg_min_max.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/argdef_ops.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/assert.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/avg_pool.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/bias_add.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/binary_op.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/broadcast_args.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/broadcast_to.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/bucketize.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/cast.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/clip_by_value.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/concat.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/const.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/conv_2d.cpp (93%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/conv_2d_backprop.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/conv_3d.cpp (93%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/conv_3d_backprop.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/crop_and_resize.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/ctc_greedy_decoder.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/ctc_loss.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/cumsum.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/depth_to_space.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/depthwise_conv_2d.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/dynamic_partition.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/einsum.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/elu.cpp (88%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/expand_dims.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/extract_image_patches.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/fake_quant_min_max_vars.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/fill.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/fused_batch_norm.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/gather.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/identity.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/interpolate.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/l2_loss.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/leaky_relu.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/linspace.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/list_diff.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/log1p.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/log_softmax.cpp (94%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/lrn.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/matmul.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/matrix_diag.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/max_pool.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/no_op.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/non_max_suppression.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/normalize_l2.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/one_hot.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/pack.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/pad.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/parallel_dynamic_stitch.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/placeholder.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/random_uniform.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/range.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/rank.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/reciprocal.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/reduce.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/relu_6.cpp (94%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/reshape.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/reverse.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/reverse_sequence.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/roll.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/round.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/rsqrt.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/scatter_nd.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/segment_sum.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/select.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/shape.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/size.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/slice.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/softmax.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/space_to_batch_nd.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/space_to_depth.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/sparse_to_dense.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/split.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/sqrt.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/square.cpp (94%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/squeeze.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/strided_slice.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/tile.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/top_k.cpp (98%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/transpose.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/unary_op.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/unique.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/unpack.cpp (97%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/where.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/xdivy.cpp (96%) rename src/frontends/{tensorflow => tensorflow_common}/src/op/zeros_like.cpp (95%) rename src/frontends/{tensorflow => tensorflow_common}/src/openvino_conversions.cpp (100%) rename src/frontends/{tensorflow => tensorflow_common}/src/pass/transpose_sinking.cpp (100%) rename src/frontends/{tensorflow => tensorflow_common}/src/place.cpp (99%) rename src/frontends/{tensorflow => tensorflow_common}/src/utils.cpp (98%) create mode 100644 src/frontends/tensorflow_common/tests/CMakeLists.txt rename src/frontends/{tensorflow => tensorflow_common}/tests/block_lstm_replacer.cpp (100%) rename src/frontends/{tensorflow => tensorflow_common}/tests/gru_block_cell_replacer.cpp (100%) rename src/frontends/{tensorflow => tensorflow_common}/tests/transpose_sinking.cpp (100%) diff --git a/.ci/azure/linux.yml b/.ci/azure/linux.yml index a41e9caa424..5cc7e70c1fc 100644 --- a/.ci/azure/linux.yml +++ b/.ci/azure/linux.yml @@ -394,6 +394,9 @@ jobs: - script: $(RUN_PREFIX) $(INSTALL_TEST_DIR)/ov_tensorflow_frontend_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)/TEST-Tensorflow.xml displayName: 'TensorFlow Frontend Unit Tests' + - script: $(RUN_PREFIX) $(INSTALL_TEST_DIR)/ov_tensorflow_common_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)/TEST-TensorflowCommon.xml + displayName: 'TensorFlow Common Unit Tests' + - script: $(RUN_PREFIX) $(INSTALL_TEST_DIR)/ov_lp_transformations_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)/TEST-LpTransformations.xml displayName: 'Low Precision Transformations Tests' diff --git a/.ci/azure/linux_debian.yml b/.ci/azure/linux_debian.yml index 60b3a46eee4..2ca96c5cf24 100644 --- a/.ci/azure/linux_debian.yml +++ b/.ci/azure/linux_debian.yml @@ -320,6 +320,12 @@ jobs: LD_LIBRARY_PATH: $(INSTALL_TEST_DIR) displayName: 'TensorFlow Frontend Unit Tests' + - script: | + $(INSTALL_TEST_DIR)/ov_tensorflow_common_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)/TEST-TensorflowCommon.xml + env: + LD_LIBRARY_PATH: $(INSTALL_TEST_DIR) + displayName: 'TensorFlow Common Unit Tests' + # python3 $(WORK_DIR)/gtest-parallel/gtest_parallel.py $(INSTALL_TEST_DIR)/InferenceEngineUnitTests --workers=16 --dump_json_test_results=InferenceEngineUnitTests.json --gtest_filter=*smoke* -- --gtest_print_time=1 - script: $(INSTALL_TEST_DIR)/InferenceEngineUnitTests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)/TEST-InferenceEngineUnitTests.xml displayName: 'IE UT old' diff --git a/.ci/azure/windows.yml b/.ci/azure/windows.yml index 165596f86da..595a9c155c8 100644 --- a/.ci/azure/windows.yml +++ b/.ci/azure/windows.yml @@ -278,6 +278,9 @@ jobs: - script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\ov_tensorflow_frontend_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)\TEST-Tensorflow.xml displayName: 'TensorFlow Frontend Unit Tests' + - script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\ov_tensorflow_common_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)\TEST-TensorflowCommon.xml + displayName: 'TensorFlow Common Unit Tests' + - script: call $(SETUPVARS) && $(INSTALL_TEST_DIR)\ov_lp_transformations_tests --gtest_print_time=1 --gtest_output=xml:$(INSTALL_TEST_DIR)\LpTransformations.xml displayName: 'Low Precision Transformations Tests' diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 034fa407d3a..f1a6a21bf9a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -80,6 +80,7 @@ /src/frontends/ir/ @openvinotoolkit/openvino-ir-frontend-maintainers /src/frontends/paddle/ @openvinotoolkit/openvino-ie-paddle-maintainers /src/frontends/tensorflow/ @openvinotoolkit/openvino-tf-frontend-maintainers +/src/frontends/tensorflow_common/ @openvinotoolkit/openvino-tf-frontend-maintainers /src/frontends/pytorch/ @openvinotoolkit/openvino-pytorch-frontend-maintainers # OpenVINO ONNX Frontend: diff --git a/.github/labeler.yml b/.github/labeler.yml index 548b6f8dbc3..fe37bf4f9b4 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -119,6 +119,7 @@ 'category: TF FE': - 'src/frontends/tensorflow/**/*' +- 'src/frontends/tensorflow_common/**/*' - 'tests/layer_tests/tensorflow_tests/**/*' 'category: PyTorch FE': diff --git a/src/frontends/CMakeLists.txt b/src/frontends/CMakeLists.txt index a200ea27af0..268424b365f 100644 --- a/src/frontends/CMakeLists.txt +++ b/src/frontends/CMakeLists.txt @@ -25,5 +25,6 @@ if(ENABLE_OV_IR_FRONTEND) endif() if(ENABLE_OV_TF_FRONTEND) + add_subdirectory(tensorflow_common) add_subdirectory(tensorflow) endif() diff --git a/src/frontends/common/include/openvino/frontend/decoder.hpp b/src/frontends/common/include/openvino/frontend/decoder.hpp index 8ad30b9e0d1..d5a02d1d1e9 100644 --- a/src/frontends/common/include/openvino/frontend/decoder.hpp +++ b/src/frontends/common/include/openvino/frontend/decoder.hpp @@ -5,6 +5,8 @@ #pragma once #include "openvino/core/any.hpp" +#include "openvino/frontend/exception.hpp" +#include "openvino/frontend/visibility.hpp" namespace ov { namespace frontend { @@ -44,5 +46,35 @@ public: virtual ~IDecoder() = default; }; +class FRONTEND_API DecoderBase { +public: + /// \brief Get attribute value by name + /// + /// \param name Attribute name + /// \return Shared pointer to appropriate value converted to openvino data type if it exists, 'nullptr' otherwise + virtual ov::Any get_attribute(const std::string& name) const = 0; + + /// \brief Get a number of inputs + virtual size_t get_input_size() const = 0; + + /// \brief Get a producer name and its output port index + /// + /// \param input_port_idx Input port index by which data is consumed + /// \param producer_name A producer name + /// \return producer_output_port_index Output port index from which data is generated + virtual void get_input_node(size_t input_port_idx, + std::string& producer_name, + size_t& producer_output_port_index) const = 0; + + /// \brief Get operation type + virtual const std::string& get_op_type() const = 0; + + /// \brief Get node name + virtual const std::string& get_op_name() const = 0; + + /// \brief Destructor + virtual ~DecoderBase(); +}; + } // namespace frontend } // namespace ov diff --git a/src/frontends/common/include/openvino/frontend/node_context.hpp b/src/frontends/common/include/openvino/frontend/node_context.hpp index cf6ea7b0eeb..f52bfe2dfe6 100644 --- a/src/frontends/common/include/openvino/frontend/node_context.hpp +++ b/src/frontends/common/include/openvino/frontend/node_context.hpp @@ -52,6 +52,10 @@ public: return m_op_type; } + virtual const std::string& get_name() const { + FRONT_END_NOT_IMPLEMENTED(get_name); + } + /// \brief Returns node attribute by name. template T get_attribute(const std::string& name) const { diff --git a/src/frontends/common/src/decoder.cpp b/src/frontends/common/src/decoder.cpp new file mode 100644 index 00000000000..41eabfe0525 --- /dev/null +++ b/src/frontends/common/src/decoder.cpp @@ -0,0 +1,9 @@ +// Copyright (C) 2018-2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "openvino/frontend/decoder.hpp" + +using namespace ov::frontend; + +DecoderBase::~DecoderBase() = default; \ No newline at end of file diff --git a/src/frontends/tensorflow/README.md b/src/frontends/tensorflow/README.md index 06e12409ae4..0460d4e3d13 100644 --- a/src/frontends/tensorflow/README.md +++ b/src/frontends/tensorflow/README.md @@ -45,6 +45,9 @@ The structure of OpenVINO TensorFlow Frontend sources includes the following dir * [src](./src/) folder contains the sources of the component. * [tests](./tests) cover internal transformations. +Additionally, there is a shared [tensorflow common](../tensorflow_common) directory with same structure and purposes. +Its content depend only on common FrontEnd APIs thus is free to use in other FrontEnds. + ## Architecture OpenVINO TensorFlow Frontend uses [TensorFlow Protobuf files](./src/proto) to read and parse different TensorFlow model formats. @@ -97,9 +100,9 @@ The next extension types are supported: ## How to implement support of a new TensorFlow operation TensorFlow conversion into the OpenVINO opset operation requires one pass or two passes: -* One pass using [Loaders](./src/op/) directly transforms TF operation into a sub-graph of OpenVINO opset. -* Two passes consist of [Loaders](./src/op/) and [Internal Transformations](./src/helper_transforms), -where the first pass transforms a TF operation into a sub-graph with [Internal Operations](./src/helper_ops), +* One pass using [Loaders](../tensorflow_common/src/op/) directly transforms TF operation into a sub-graph of OpenVINO opset. +* Two passes consist of [Loaders](../tensorflow_common/src/op/) and [Internal Transformations](../tensorflow_common/include/helper_transforms), +where the first pass transforms a TF operation into a sub-graph with [Internal Operations](../tensorflow_common/include/src/helper_ops), and the second pass avoids internal operations. Two transformation passes are used when a TensorFlow operation cannot be mapped into a sub-graph of the OpenVINO opset, and the conversion depends on the succeeding operations in the graph. @@ -108,7 +111,7 @@ In most cases, it is sufficient to use just one pass for TensorFlow operation co ### One transformation pass using Loader Most TensorFlow operations can be converted by one transformation pass using `Loader`. -The dictionary of `Loaders` is placed in the [op_table.cpp](./src/op_table.cpp) file and loaders are in the [op](./src/op) directory: +The dictionary of `Loaders` is placed in the [op_table.cpp](./src/op_table.cpp) file and loaders are in the [op](../tensorflow_common/src/op/) directory: https://github.com/openvinotoolkit/openvino/blob/7f3c95c161bc78ab2aefa6eab8b008142fb945bc/src/frontends/tensorflow/src/op_table.cpp#L129-L134 @@ -119,7 +122,7 @@ https://github.com/openvinotoolkit/openvino/blob/7f3c95c161bc78ab2aefa6eab8b0081 In this example, the loader checks the consistency of the operation by using `default_op_checks` and retrieves an attribute of the equation by using the `NodeContext::get_attribute()` method. The loader uses [OpenVINO Core API](../../core/README.md) for building the OpenVINO sub-graph to replace the TensorFlow operation. -The support of a new TensorFlow operation requires implementing a new `Loader` in a separate file in the [op](./src/op) directory and registering it into the dictionary of `Loaders`. +The support of a new TensorFlow operation requires implementing a new `Loader` in a separate file in the [op](../tensorflow_common/src/op/) directory and registering it into the dictionary of `Loaders`. The main rules for loaders implementation: 1. Support dynamic shapes and ranks, undefined types, including for the future support of new types, such as strings and complex numbers. @@ -132,7 +135,7 @@ The main rules for loaders implementation: ### Two transformation passes using Loader and Internal Transformation In rare cases, TensorFlow operation conversion requires two transformations (`Loader` and `Internal Transformation`). -In the first step, `Loader` must convert a TF operation into [Internal Operation](./src/helper_ops) that is used temporarily by the conversion pipeline. +In the first step, `Loader` must convert a TF operation into [Internal Operation](../tensorflow_common/helper_ops) that is used temporarily by the conversion pipeline. The internal operation implementation must also contain the `validate_and_infer_types()` method as similar to [OpenVINO Core](https://docs.openvino.ai/nightly/groupov_ops_cpp_api.html) operations. Here is an example of an implementation for the internal operation `SparseFillEmptyRows` used to convert Wide and Deep models. diff --git a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/decoder.hpp b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/decoder.hpp index 1453e362268..f39d5d8177e 100644 --- a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/decoder.hpp +++ b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/decoder.hpp @@ -1,45 +1,15 @@ // Copyright (C) 2018-2023 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // - #pragma once -#include "openvino/core/any.hpp" -#include "openvino/frontend/tensorflow/visibility.hpp" +#include "openvino/frontend/decoder.hpp" namespace ov { namespace frontend { namespace tensorflow { -class TENSORFLOW_API DecoderBase { -public: - /// \brief Get attribute value by name - /// - /// \param name Attribute name - /// \return Shared pointer to appropriate value converted to openvino data type if it exists, 'nullptr' otherwise - virtual ov::Any get_attribute(const std::string& name) const = 0; - - /// \brief Get a number of inputs - virtual size_t get_input_size() const = 0; - - /// \brief Get a producer name and its output port index - /// - /// \param input_port_idx Input port index by which data is consumed - /// \param producer_name A producer name - /// \return producer_output_port_index Output port index from which data is generated - virtual void get_input_node(size_t input_port_idx, - std::string& producer_name, - size_t& producer_output_port_index) const = 0; - - /// \brief Get operation type - virtual const std::string& get_op_type() const = 0; - - /// \brief Get node name - virtual const std::string& get_op_name() const = 0; - - /// \brief Destructor - virtual ~DecoderBase() = default; -}; +using DecoderBase = ov::frontend::DecoderBase; } // namespace tensorflow } // namespace frontend diff --git a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/exception.hpp b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/exception.hpp index 98ff3029b2b..1a649a3fcf9 100644 --- a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/exception.hpp +++ b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/exception.hpp @@ -6,22 +6,6 @@ #include "openvino/frontend/exception.hpp" namespace ov { -namespace frontend { -namespace tensorflow { - -class NodeContext; - -class OpValidationFailure : public ov::frontend::OpValidationFailure { -public: - OpValidationFailure(const CheckLocInfo& check_loc_info, const NodeContext& node, const std::string& explanation) - : ov::frontend::OpValidationFailure(check_loc_info, get_error_msg_prefix_tf(node), explanation) {} - -private: - static std::string get_error_msg_prefix_tf(const NodeContext& node); -}; -} // namespace tensorflow -} // namespace frontend - /// \brief Macro to check whether a boolean condition holds. /// \param node_context Object of NodeContext class /// \param cond Condition to check @@ -29,6 +13,11 @@ private: /// stream-insertion operator. Note that the expressions here will be evaluated lazily, /// i.e., only if the `cond` evalutes to `false`. /// \throws ::ov::OpValidationFailure if `cond` is false. -#define TENSORFLOW_OP_VALIDATION(node_context, ...) \ - OPENVINO_ASSERT_HELPER(::ov::frontend::tensorflow::OpValidationFailure, (node_context), __VA_ARGS__) + +#ifndef TENSORFLOW_OP_VALIDATION +# define TENSORFLOW_OP_VALIDATION(node_context, ...) \ + OPENVINO_ASSERT_HELPER(::ov::frontend::OpValidationFailure, \ + ("While validating node '" + node_context.get_op_type() + "'"), \ + __VA_ARGS__) +#endif } // namespace ov diff --git a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/graph_iterator.hpp b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/graph_iterator.hpp index a7a69da6fe3..dd7f7f3697f 100644 --- a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/graph_iterator.hpp +++ b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/graph_iterator.hpp @@ -6,7 +6,7 @@ #include "openvino/core/any.hpp" #include "openvino/frontend/tensorflow/decoder.hpp" -#include "openvino/frontend/visibility.hpp" +#include "openvino/frontend/tensorflow/visibility.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/node_context.hpp b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/node_context.hpp index 643812e1244..1d002270cf7 100644 --- a/src/frontends/tensorflow/include/openvino/frontend/tensorflow/node_context.hpp +++ b/src/frontends/tensorflow/include/openvino/frontend/tensorflow/node_context.hpp @@ -41,7 +41,7 @@ public: } /// \brief Get a node name - std::string get_name() const { + const std::string& get_name() const override { return m_decoder->get_op_name(); } diff --git a/src/frontends/tensorflow/src/CMakeLists.txt b/src/frontends/tensorflow/src/CMakeLists.txt index 6ee6fbc94cd..49f4923051f 100644 --- a/src/frontends/tensorflow/src/CMakeLists.txt +++ b/src/frontends/tensorflow/src/CMakeLists.txt @@ -7,20 +7,5 @@ ov_add_frontend(NAME tensorflow FILEDESCRIPTION "FrontEnd to load and convert TensorFlow file format" LINK_LIBRARIES openvino::util openvino::runtime::dev) -# add object library used in tests for private transformations - -add_library(openvino_tensorflow_frontend_static_tests STATIC EXCLUDE_FROM_ALL - helper_transforms/block_lstm_replacer.cpp - helper_transforms/embedding_segments_feature_fusing.cpp - helper_transforms/gru_block_cell_replacer.cpp - pass/transpose_sinking.cpp - exception.cpp - openvino_conversions.cpp - utils.cpp) - -target_include_directories(openvino_tensorflow_frontend_static_tests - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE - $ - $) +set(TARGET_NAME "${FRONTEND_NAME_PREFIX}tensorflow${FRONTEND_NAME_SUFFIX}") +target_link_libraries(${TARGET_NAME} PRIVATE openvino::frontend::tensorflow_common) diff --git a/src/frontends/tensorflow/src/exception.cpp b/src/frontends/tensorflow/src/exception.cpp deleted file mode 100644 index b5ebf308d4a..00000000000 --- a/src/frontends/tensorflow/src/exception.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (C) 2018-2023 Intel Corporation -// SPDX-License-Identifier: Apache-2.0 -// - -#include "openvino/frontend/tensorflow/exception.hpp" - -#include "openvino/frontend/tensorflow/node_context.hpp" - -namespace ov { -namespace frontend { -namespace tensorflow { -std::string OpValidationFailure::get_error_msg_prefix_tf(const NodeContext& node) { - std::stringstream ss; - ss << "While validating node '" << node.get_op_type() << '\''; - return ss.str(); -} -} // namespace tensorflow -} // namespace frontend -} // namespace ov diff --git a/src/frontends/tensorflow/src/op/block_lstm.cpp b/src/frontends/tensorflow/src/op/block_lstm.cpp index d2d24f6e3e0..925906cdaca 100644 --- a/src/frontends/tensorflow/src/op/block_lstm.cpp +++ b/src/frontends/tensorflow/src/op/block_lstm.cpp @@ -4,9 +4,10 @@ #include "helper_ops/block_lstm.hpp" +#include "common_op_table.hpp" #include "ngraph/validation_util.hpp" -#include "op_table.hpp" #include "openvino/core/validation_util.hpp" +#include "openvino/frontend/tensorflow/node_context.hpp" using namespace std; @@ -14,7 +15,7 @@ namespace ov { namespace frontend { namespace tensorflow { namespace op { -OutputVector translate_block_lstm_op(const NodeContext& node) { +OutputVector translate_block_lstm_op(const ov::frontend::tensorflow::NodeContext& node) { default_op_checks(node, 9, {"BlockLSTM"}); auto seq_len_max = node.get_input(0); auto x = node.get_input(1); diff --git a/src/frontends/tensorflow/src/op/gru_block_cell.cpp b/src/frontends/tensorflow/src/op/gru_block_cell.cpp index 521c9c1e667..42bbba45b8b 100644 --- a/src/frontends/tensorflow/src/op/gru_block_cell.cpp +++ b/src/frontends/tensorflow/src/op/gru_block_cell.cpp @@ -4,7 +4,8 @@ #include "helper_ops/gru_block_cell.hpp" -#include "op_table.hpp" +#include "common_op_table.hpp" +#include "openvino/frontend/tensorflow/node_context.hpp" using namespace std; using namespace ov; @@ -15,7 +16,7 @@ namespace frontend { namespace tensorflow { namespace op { -OutputVector translate_gru_block_cell_op(const NodeContext& node) { +OutputVector translate_gru_block_cell_op(const ov::frontend::tensorflow::NodeContext& node) { // GRUBlockCell computes the GRU cell forward propagation for 1 time step // Inputs: // 0) x: Input to the GRU cell diff --git a/src/frontends/tensorflow/src/op/if.cpp b/src/frontends/tensorflow/src/op/if.cpp index cd75ba1f7e4..2ccdb45db86 100644 --- a/src/frontends/tensorflow/src/op/if.cpp +++ b/src/frontends/tensorflow/src/op/if.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "common_op_table.hpp" #include "input_model.hpp" -#include "op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/partitioned_call.cpp b/src/frontends/tensorflow/src/op/partitioned_call.cpp index 018248b210e..e846b78bc2c 100644 --- a/src/frontends/tensorflow/src/op/partitioned_call.cpp +++ b/src/frontends/tensorflow/src/op/partitioned_call.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "common_op_table.hpp" #include "input_model.hpp" -#include "op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/sparse_reshape.cpp b/src/frontends/tensorflow/src/op/sparse_reshape.cpp index c8899c4dd60..6a09ecb2872 100644 --- a/src/frontends/tensorflow/src/op/sparse_reshape.cpp +++ b/src/frontends/tensorflow/src/op/sparse_reshape.cpp @@ -2,11 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "common_op_table.hpp" #include "helper_ops/sparse_fill_empty_rows.hpp" #include "helper_ops/sparse_segment_ops.hpp" #include "ngraph/validation_util.hpp" -#include "op_table.hpp" #include "openvino/core/validation_util.hpp" +#include "openvino/frontend/tensorflow/node_context.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; @@ -17,7 +18,7 @@ namespace ov { namespace frontend { namespace tensorflow { namespace op { -OutputVector translate_sparse_reshape_op(const NodeContext& node) { +OutputVector translate_sparse_reshape_op(const ov::frontend::tensorflow::NodeContext& node) { // Currently, the translation for SparseReshape is possible only if new shape value is the same as the input shape // value or it is different just by one dynamic dimension of the new shape that can be replace with the // corresponding static dimension of the input shape. @@ -71,7 +72,7 @@ OutputVector translate_sparse_reshape_op(const NodeContext& node) { return {input_indices, input_shape}; } -OutputVector translate_sparse_fill_empty_rows_op(const NodeContext& node) { +OutputVector translate_sparse_fill_empty_rows_op(const ov::frontend::tensorflow::NodeContext& node) { default_op_checks(node, 3, {"SparseFillEmptyRows"}); auto input_indices = node.get_input(0); auto input_values = node.get_input(1); @@ -87,7 +88,7 @@ OutputVector translate_sparse_fill_empty_rows_op(const NodeContext& node) { return sparse_fill_empty_rows->outputs(); } -OutputVector translate_sparse_segment_sum_op(const NodeContext& node) { +OutputVector translate_sparse_segment_sum_op(const ov::frontend::tensorflow::NodeContext& node) { auto input_size = node.get_input_size(); TENSORFLOW_OP_VALIDATION(node, input_size == 3 || input_size == 4, diff --git a/src/frontends/tensorflow/src/op/while.cpp b/src/frontends/tensorflow/src/op/while.cpp index 81c37431ea0..2d3e1edad6a 100644 --- a/src/frontends/tensorflow/src/op/while.cpp +++ b/src/frontends/tensorflow/src/op/while.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "common_op_table.hpp" #include "input_model.hpp" -#include "op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op_table.cpp b/src/frontends/tensorflow/src/op_table.cpp index 2b1bea2d34b..07ac102c49b 100644 --- a/src/frontends/tensorflow/src/op_table.cpp +++ b/src/frontends/tensorflow/src/op_table.cpp @@ -4,6 +4,7 @@ #include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" #include "openvino/opsets/opset9.hpp" @@ -15,131 +16,17 @@ namespace ov { namespace frontend { namespace tensorflow { namespace op { -#define OP_CONVERTER(op) OutputVector op(const NodeContext& node) -#define OP_T_CONVERTER(op) \ - template \ - OutputVector op(const NodeContext& node) -OP_T_CONVERTER(translate_unary_op); -OP_T_CONVERTER(translate_binary_op); -OP_T_CONVERTER(translate_direct_reduce_op); +#define TF_OP_CONVERTER(op) OutputVector op(const ov::frontend::tensorflow::NodeContext& node) -OP_CONVERTER(translate_add_n_op); -OP_CONVERTER(translate_arg_max_op); -OP_CONVERTER(translate_arg_min_op); -OP_CONVERTER(translate_assert_op); -OP_CONVERTER(translate_avg_pool_op); -OP_CONVERTER(translate_batch_mat_mul_op); -OP_CONVERTER(translate_batch_to_space_nd_op); -OP_CONVERTER(translate_bias_add_op); -OP_CONVERTER(translate_block_lstm_op); -OP_CONVERTER(translate_broadcast_args_op); -OP_CONVERTER(translate_broadcast_to_op); -OP_CONVERTER(translate_bucketize_op); -OP_CONVERTER(translate_cast_op); -OP_CONVERTER(translate_clip_by_value_op); -OP_CONVERTER(translate_concat_op); -OP_CONVERTER(translate_const_op); -OP_CONVERTER(translate_conv_2d_op); -OP_CONVERTER(translate_conv_2d_backprop_input_op); -OP_CONVERTER(translate_conv_3d_op); -OP_CONVERTER(translate_conv_3d_backprop_input_v2_op); -OP_CONVERTER(translate_ctc_greedy_decoder_op); -OP_CONVERTER(translate_ctc_loss_op); -OP_CONVERTER(translate_cumsum_op); -OP_CONVERTER(translate_crop_and_resize_op); -OP_CONVERTER(translate_depth_to_space_op); -OP_CONVERTER(translate_depthwise_conv_2d_native_op); -OP_CONVERTER(translate_dynamic_partition_op); -OP_CONVERTER(translate_einsum_op); -OP_CONVERTER(translate_elu_op); -OP_CONVERTER(translate_expand_dims_op); -OP_CONVERTER(translate_extract_image_patches_op); -OP_CONVERTER(translate_fake_quant_op); -OP_CONVERTER(translate_fill_op); -OP_CONVERTER(translate_floor_div_op); -OP_CONVERTER(translate_fused_batch_norm_op); -OP_CONVERTER(translate_gather_op); -OP_CONVERTER(translate_gather_v2_op); -OP_CONVERTER(translate_gather_nd_op); -OP_CONVERTER(translate_gru_block_cell_op); -OP_CONVERTER(translate_identity_op); -OP_CONVERTER(translate_identity_n_op); -OP_CONVERTER(translate_input_arg_op); -OP_CONVERTER(translate_output_arg_op); -OP_CONVERTER(translate_if_op); -OP_CONVERTER(translate_interpolate_op); -OP_CONVERTER(translate_is_finite_op); -OP_CONVERTER(translate_is_inf_op); -OP_CONVERTER(translate_is_nan_op); -OP_CONVERTER(translate_l2_loss_op); -OP_CONVERTER(translate_linspace_op); -OP_CONVERTER(translate_list_diff_op); -OP_CONVERTER(translate_leaky_relu_op); -OP_CONVERTER(translate_log_softmax_op); -OP_CONVERTER(translate_log_1p_op); -OP_CONVERTER(translate_lrn_op); -OP_CONVERTER(translate_mat_mul_op); -OP_CONVERTER(translate_matrix_diag_op); -OP_CONVERTER(translate_max_pool_op); -OP_CONVERTER(translate_mirror_pad_op); -OP_CONVERTER(translate_non_max_suppression_op); -OP_CONVERTER(translate_normalize_l2_op); -OP_CONVERTER(translate_parallel_dynamic_stitch_op); -OP_CONVERTER(translate_partitioned_call_op); -OP_CONVERTER(translate_placeholder_op); -OP_CONVERTER(translate_placeholder_with_default_op); -OP_CONVERTER(translate_no_op); -OP_CONVERTER(translate_one_hot_op); -OP_CONVERTER(translate_pack_op); -OP_CONVERTER(translate_pad_op); -OP_CONVERTER(translate_padv2_op); -OP_CONVERTER(translate_range_op); -OP_CONVERTER(translate_rank_op); -OP_CONVERTER(translate_random_uniform_op); -OP_CONVERTER(translate_random_uniform_int_op); -OP_CONVERTER(translate_relu_6_op); -OP_CONVERTER(translate_reciprocal_op); -OP_CONVERTER(translate_reshape_op); -OP_CONVERTER(translate_resource_gather_op); -OP_CONVERTER(translate_reverse_op); -OP_CONVERTER(translate_reverse_v2_op); -OP_CONVERTER(translate_reverse_sequence_op); -OP_CONVERTER(translate_roll_op); -OP_CONVERTER(translate_round_op); -OP_CONVERTER(translate_rsqrt_op); -OP_CONVERTER(translate_scatter_nd_op); -OP_CONVERTER(translate_segment_sum_op); -OP_CONVERTER(translate_space_to_batch_nd_op); -OP_CONVERTER(translate_sparse_to_dense_op); -OP_CONVERTER(translate_select_op); -OP_CONVERTER(translate_select_v2_op); -OP_CONVERTER(translate_shape_op); -OP_CONVERTER(translate_size_op); -OP_CONVERTER(translate_slice_op); -OP_CONVERTER(translate_softmax_op); -OP_CONVERTER(translate_space_to_depth_op); -OP_CONVERTER(translate_sparse_reshape_op); -OP_CONVERTER(translate_split_op); -OP_CONVERTER(translate_split_v_op); -OP_CONVERTER(translate_square_op); -OP_CONVERTER(translate_squeeze_op); -OP_CONVERTER(translate_strided_slice_op); -OP_CONVERTER(translate_sqrt_op); -OP_CONVERTER(translate_tile_op); -OP_CONVERTER(translate_top_k_op); -OP_CONVERTER(translate_top_k_v2_op); -OP_CONVERTER(translate_transpose_op); -OP_CONVERTER(translate_unpack_op); -OP_CONVERTER(translate_where_op); -OP_CONVERTER(translate_while_op); -OP_CONVERTER(translate_x_div_y_op); -OP_CONVERTER(translate_zeros_like_op); - -// Translators for internal operations -OP_CONVERTER(translate_sparse_fill_empty_rows_op); -OP_CONVERTER(translate_sparse_segment_sum_op); -OP_CONVERTER(translate_unique_op); +TF_OP_CONVERTER(translate_if_op); +TF_OP_CONVERTER(translate_block_lstm_op); +TF_OP_CONVERTER(translate_gru_block_cell_op); +TF_OP_CONVERTER(translate_partitioned_call_op); +TF_OP_CONVERTER(translate_sparse_fill_empty_rows_op); +TF_OP_CONVERTER(translate_sparse_reshape_op); +TF_OP_CONVERTER(translate_sparse_segment_sum_op); +TF_OP_CONVERTER(translate_while_op); const std::map get_supported_ops() { return { diff --git a/src/frontends/tensorflow/tests/CMakeLists.txt b/src/frontends/tensorflow/tests/CMakeLists.txt index 26585b18054..d9f477b1b00 100644 --- a/src/frontends/tensorflow/tests/CMakeLists.txt +++ b/src/frontends/tensorflow/tests/CMakeLists.txt @@ -14,7 +14,7 @@ ov_add_test_target( gtest_main_manifest frontend_shared_test_classes openvino_tensorflow_frontend - openvino_tensorflow_frontend_static_tests + openvino_tensorflow_common ADD_CLANG_FORMAT LABELS OV diff --git a/src/frontends/tensorflow_common/CMakeLists.txt b/src/frontends/tensorflow_common/CMakeLists.txt new file mode 100644 index 00000000000..12d6edab844 --- /dev/null +++ b/src/frontends/tensorflow_common/CMakeLists.txt @@ -0,0 +1,9 @@ +# Copyright (C) 2018-2022 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# + +add_subdirectory(src) + +if(ENABLE_TESTS) + add_subdirectory(tests) +endif() diff --git a/src/frontends/tensorflow_common/include/common_op_table.hpp b/src/frontends/tensorflow_common/include/common_op_table.hpp new file mode 100644 index 00000000000..7ce3949fa46 --- /dev/null +++ b/src/frontends/tensorflow_common/include/common_op_table.hpp @@ -0,0 +1,146 @@ +// Copyright (C) 2018-2023 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#pragma once + +#include +#include +#include + +#include "openvino/core/node_vector.hpp" +#include "openvino/frontend/node_context.hpp" +#include "openvino_conversions.hpp" +#include "utils.hpp" + +#define TENSORFLOW_OP_VALIDATION(node_context, ...) \ + OPENVINO_ASSERT_HELPER(::ov::frontend::OpValidationFailure, \ + ("While validating node '" + node_context.get_op_type() + "'"), \ + __VA_ARGS__) + +namespace ov { +namespace frontend { +namespace tensorflow { +namespace op { +#define OP_CONVERTER(op) OutputVector op(const ov::frontend::NodeContext& node) +#define OP_T_CONVERTER(op) \ + template \ + OutputVector op(const ov::frontend::NodeContext& node) + +OP_T_CONVERTER(translate_unary_op); +OP_T_CONVERTER(translate_binary_op); +OP_T_CONVERTER(translate_direct_reduce_op); + +OP_CONVERTER(translate_add_n_op); +OP_CONVERTER(translate_arg_max_op); +OP_CONVERTER(translate_arg_min_op); +OP_CONVERTER(translate_assert_op); +OP_CONVERTER(translate_avg_pool_op); +OP_CONVERTER(translate_batch_mat_mul_op); +OP_CONVERTER(translate_batch_to_space_nd_op); +OP_CONVERTER(translate_bias_add_op); +OP_CONVERTER(translate_broadcast_args_op); +OP_CONVERTER(translate_broadcast_to_op); +OP_CONVERTER(translate_bucketize_op); +OP_CONVERTER(translate_cast_op); +OP_CONVERTER(translate_clip_by_value_op); +OP_CONVERTER(translate_concat_op); +OP_CONVERTER(translate_const_op); +OP_CONVERTER(translate_conv_2d_op); +OP_CONVERTER(translate_conv_2d_backprop_input_op); +OP_CONVERTER(translate_conv_3d_op); +OP_CONVERTER(translate_conv_3d_backprop_input_v2_op); +OP_CONVERTER(translate_ctc_greedy_decoder_op); +OP_CONVERTER(translate_ctc_loss_op); +OP_CONVERTER(translate_cumsum_op); +OP_CONVERTER(translate_crop_and_resize_op); +OP_CONVERTER(translate_depth_to_space_op); +OP_CONVERTER(translate_depthwise_conv_2d_native_op); +OP_CONVERTER(translate_dynamic_partition_op); +OP_CONVERTER(translate_einsum_op); +OP_CONVERTER(translate_elu_op); +OP_CONVERTER(translate_expand_dims_op); +OP_CONVERTER(translate_extract_image_patches_op); +OP_CONVERTER(translate_fake_quant_op); +OP_CONVERTER(translate_fill_op); +OP_CONVERTER(translate_floor_div_op); +OP_CONVERTER(translate_fused_batch_norm_op); +OP_CONVERTER(translate_gather_op); +OP_CONVERTER(translate_gather_v2_op); +OP_CONVERTER(translate_gather_nd_op); +OP_CONVERTER(translate_identity_op); +OP_CONVERTER(translate_identity_n_op); +OP_CONVERTER(translate_input_arg_op); +OP_CONVERTER(translate_output_arg_op); +OP_CONVERTER(translate_interpolate_op); +OP_CONVERTER(translate_is_finite_op); +OP_CONVERTER(translate_is_inf_op); +OP_CONVERTER(translate_is_nan_op); +OP_CONVERTER(translate_l2_loss_op); +OP_CONVERTER(translate_linspace_op); +OP_CONVERTER(translate_list_diff_op); +OP_CONVERTER(translate_leaky_relu_op); +OP_CONVERTER(translate_log_softmax_op); +OP_CONVERTER(translate_log_1p_op); +OP_CONVERTER(translate_lrn_op); +OP_CONVERTER(translate_mat_mul_op); +OP_CONVERTER(translate_matrix_diag_op); +OP_CONVERTER(translate_max_pool_op); +OP_CONVERTER(translate_mirror_pad_op); +OP_CONVERTER(translate_non_max_suppression_op); +OP_CONVERTER(translate_normalize_l2_op); +OP_CONVERTER(translate_parallel_dynamic_stitch_op); +OP_CONVERTER(translate_placeholder_op); +OP_CONVERTER(translate_placeholder_with_default_op); +OP_CONVERTER(translate_no_op); +OP_CONVERTER(translate_one_hot_op); +OP_CONVERTER(translate_pack_op); +OP_CONVERTER(translate_pad_op); +OP_CONVERTER(translate_padv2_op); +OP_CONVERTER(translate_range_op); +OP_CONVERTER(translate_rank_op); +OP_CONVERTER(translate_random_uniform_op); +OP_CONVERTER(translate_random_uniform_int_op); +OP_CONVERTER(translate_relu_6_op); +OP_CONVERTER(translate_reciprocal_op); +OP_CONVERTER(translate_reshape_op); +OP_CONVERTER(translate_resource_gather_op); +OP_CONVERTER(translate_reverse_op); +OP_CONVERTER(translate_reverse_v2_op); +OP_CONVERTER(translate_reverse_sequence_op); +OP_CONVERTER(translate_roll_op); +OP_CONVERTER(translate_round_op); +OP_CONVERTER(translate_rsqrt_op); +OP_CONVERTER(translate_scatter_nd_op); +OP_CONVERTER(translate_segment_sum_op); +OP_CONVERTER(translate_space_to_batch_nd_op); +OP_CONVERTER(translate_sparse_to_dense_op); +OP_CONVERTER(translate_select_op); +OP_CONVERTER(translate_select_v2_op); +OP_CONVERTER(translate_shape_op); +OP_CONVERTER(translate_size_op); +OP_CONVERTER(translate_slice_op); +OP_CONVERTER(translate_softmax_op); +OP_CONVERTER(translate_space_to_depth_op); +OP_CONVERTER(translate_split_op); +OP_CONVERTER(translate_split_v_op); +OP_CONVERTER(translate_square_op); +OP_CONVERTER(translate_squeeze_op); +OP_CONVERTER(translate_strided_slice_op); +OP_CONVERTER(translate_sqrt_op); +OP_CONVERTER(translate_tile_op); +OP_CONVERTER(translate_top_k_op); +OP_CONVERTER(translate_top_k_v2_op); +OP_CONVERTER(translate_transpose_op); +OP_CONVERTER(translate_unpack_op); +OP_CONVERTER(translate_where_op); +OP_CONVERTER(translate_x_div_y_op); +OP_CONVERTER(translate_zeros_like_op); + +// Translators for internal operations +OP_CONVERTER(translate_unique_op); + +} // namespace op +} // namespace tensorflow +} // namespace frontend +} // namespace ov \ No newline at end of file diff --git a/src/frontends/tensorflow/src/helper_ops/block_lstm.hpp b/src/frontends/tensorflow_common/include/helper_ops/block_lstm.hpp similarity index 100% rename from src/frontends/tensorflow/src/helper_ops/block_lstm.hpp rename to src/frontends/tensorflow_common/include/helper_ops/block_lstm.hpp diff --git a/src/frontends/tensorflow/src/helper_ops/gru_block_cell.hpp b/src/frontends/tensorflow_common/include/helper_ops/gru_block_cell.hpp similarity index 100% rename from src/frontends/tensorflow/src/helper_ops/gru_block_cell.hpp rename to src/frontends/tensorflow_common/include/helper_ops/gru_block_cell.hpp diff --git a/src/frontends/tensorflow/src/helper_ops/internal_operation.hpp b/src/frontends/tensorflow_common/include/helper_ops/internal_operation.hpp similarity index 94% rename from src/frontends/tensorflow/src/helper_ops/internal_operation.hpp rename to src/frontends/tensorflow_common/include/helper_ops/internal_operation.hpp index 243f05c46b6..2a721dd84c3 100644 --- a/src/frontends/tensorflow/src/helper_ops/internal_operation.hpp +++ b/src/frontends/tensorflow_common/include/helper_ops/internal_operation.hpp @@ -7,14 +7,14 @@ #include #include -#include "openvino/frontend/tensorflow/decoder.hpp" +#include "openvino/frontend/decoder.hpp" #include "tf_framework_node.hpp" namespace ov { namespace frontend { namespace tensorflow { -class DecoderFake : public ov::frontend::tensorflow::DecoderBase { +class DecoderFake : public ov::frontend::DecoderBase { public: explicit DecoderFake() {} diff --git a/src/frontends/tensorflow/src/helper_ops/sparse_fill_empty_rows.hpp b/src/frontends/tensorflow_common/include/helper_ops/sparse_fill_empty_rows.hpp similarity index 98% rename from src/frontends/tensorflow/src/helper_ops/sparse_fill_empty_rows.hpp rename to src/frontends/tensorflow_common/include/helper_ops/sparse_fill_empty_rows.hpp index 6414a30fe46..0f77b9fd511 100644 --- a/src/frontends/tensorflow/src/helper_ops/sparse_fill_empty_rows.hpp +++ b/src/frontends/tensorflow_common/include/helper_ops/sparse_fill_empty_rows.hpp @@ -8,7 +8,7 @@ #include #include "helper_ops/internal_operation.hpp" -#include "openvino/frontend/tensorflow/decoder.hpp" +#include "openvino/frontend/decoder.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/tensorflow/src/helper_ops/sparse_segment_ops.hpp b/src/frontends/tensorflow_common/include/helper_ops/sparse_segment_ops.hpp similarity index 100% rename from src/frontends/tensorflow/src/helper_ops/sparse_segment_ops.hpp rename to src/frontends/tensorflow_common/include/helper_ops/sparse_segment_ops.hpp diff --git a/src/frontends/tensorflow/src/helper_ops/unsupported_constant.hpp b/src/frontends/tensorflow_common/include/helper_ops/unsupported_constant.hpp similarity index 100% rename from src/frontends/tensorflow/src/helper_ops/unsupported_constant.hpp rename to src/frontends/tensorflow_common/include/helper_ops/unsupported_constant.hpp diff --git a/src/frontends/tensorflow/src/helper_transforms/block_lstm_replacer.hpp b/src/frontends/tensorflow_common/include/helper_transforms/block_lstm_replacer.hpp similarity index 92% rename from src/frontends/tensorflow/src/helper_transforms/block_lstm_replacer.hpp rename to src/frontends/tensorflow_common/include/helper_transforms/block_lstm_replacer.hpp index 99f1f8d42de..71631dba2e0 100644 --- a/src/frontends/tensorflow/src/helper_transforms/block_lstm_replacer.hpp +++ b/src/frontends/tensorflow_common/include/helper_transforms/block_lstm_replacer.hpp @@ -7,7 +7,6 @@ #include #include -#include "openvino/frontend/tensorflow/visibility.hpp" #include "openvino/pass/graph_rewrite.hpp" #include "openvino/pass/pass.hpp" diff --git a/src/frontends/tensorflow/src/helper_transforms/embedding_segments_feature_fusing.hpp b/src/frontends/tensorflow_common/include/helper_transforms/embedding_segments_feature_fusing.hpp similarity index 100% rename from src/frontends/tensorflow/src/helper_transforms/embedding_segments_feature_fusing.hpp rename to src/frontends/tensorflow_common/include/helper_transforms/embedding_segments_feature_fusing.hpp diff --git a/src/frontends/tensorflow/src/helper_transforms/gru_block_cell_replacer.hpp b/src/frontends/tensorflow_common/include/helper_transforms/gru_block_cell_replacer.hpp similarity index 92% rename from src/frontends/tensorflow/src/helper_transforms/gru_block_cell_replacer.hpp rename to src/frontends/tensorflow_common/include/helper_transforms/gru_block_cell_replacer.hpp index 0b0bd4cee37..31404e8a96e 100644 --- a/src/frontends/tensorflow/src/helper_transforms/gru_block_cell_replacer.hpp +++ b/src/frontends/tensorflow_common/include/helper_transforms/gru_block_cell_replacer.hpp @@ -7,7 +7,6 @@ #include #include -#include "openvino/frontend/tensorflow/visibility.hpp" #include "openvino/pass/graph_rewrite.hpp" #include "openvino/pass/pass.hpp" diff --git a/src/frontends/tensorflow/src/openvino_conversions.hpp b/src/frontends/tensorflow_common/include/openvino_conversions.hpp similarity index 100% rename from src/frontends/tensorflow/src/openvino_conversions.hpp rename to src/frontends/tensorflow_common/include/openvino_conversions.hpp diff --git a/src/frontends/tensorflow/src/pass/transpose_sinking.hpp b/src/frontends/tensorflow_common/include/pass/transpose_sinking.hpp similarity index 100% rename from src/frontends/tensorflow/src/pass/transpose_sinking.hpp rename to src/frontends/tensorflow_common/include/pass/transpose_sinking.hpp diff --git a/src/frontends/tensorflow/src/place.hpp b/src/frontends/tensorflow_common/include/place.hpp similarity index 99% rename from src/frontends/tensorflow/src/place.hpp rename to src/frontends/tensorflow_common/include/place.hpp index f7603922074..09f0546248d 100644 --- a/src/frontends/tensorflow/src/place.hpp +++ b/src/frontends/tensorflow_common/include/place.hpp @@ -4,8 +4,8 @@ #pragma once +#include "openvino/frontend/decoder.hpp" #include "openvino/frontend/frontend.hpp" -#include "openvino/frontend/tensorflow/decoder.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/tensorflow/src/tf_framework_node.hpp b/src/frontends/tensorflow_common/include/tf_framework_node.hpp similarity index 96% rename from src/frontends/tensorflow/src/tf_framework_node.hpp rename to src/frontends/tensorflow_common/include/tf_framework_node.hpp index b075c700535..0d31c1dad43 100644 --- a/src/frontends/tensorflow/src/tf_framework_node.hpp +++ b/src/frontends/tensorflow_common/include/tf_framework_node.hpp @@ -6,7 +6,7 @@ #include -#include "openvino/frontend/tensorflow/decoder.hpp" +#include "openvino/frontend/decoder.hpp" #include "openvino/op/util/framework_node.hpp" namespace ov { diff --git a/src/frontends/tensorflow/src/utils.hpp b/src/frontends/tensorflow_common/include/utils.hpp similarity index 87% rename from src/frontends/tensorflow/src/utils.hpp rename to src/frontends/tensorflow_common/include/utils.hpp index 11ab4ee1445..345cfda63c2 100644 --- a/src/frontends/tensorflow/src/utils.hpp +++ b/src/frontends/tensorflow_common/include/utils.hpp @@ -5,10 +5,17 @@ #pragma once #include "openvino/core/validation_util.hpp" -#include "openvino/frontend/tensorflow/node_context.hpp" +#include "openvino/frontend/node_context.hpp" #include "openvino/opsets/opset8.hpp" #include "openvino/pass/graph_rewrite.hpp" +#ifndef TENSORFLOW_OP_VALIDATION +# define TENSORFLOW_OP_VALIDATION(node_context, ...) \ + OPENVINO_ASSERT_HELPER(::ov::frontend::OpValidationFailure, \ + ("While validating node '" + node_context.get_op_type() + "'"), \ + __VA_ARGS__) +#endif + namespace ov { namespace frontend { namespace tensorflow { diff --git a/src/frontends/tensorflow_common/src/CMakeLists.txt b/src/frontends/tensorflow_common/src/CMakeLists.txt new file mode 100644 index 00000000000..16ee2a7c7b8 --- /dev/null +++ b/src/frontends/tensorflow_common/src/CMakeLists.txt @@ -0,0 +1,26 @@ +# Copyright (C) 2018-2022 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# + +set(TARGET_NAME "openvino_tensorflow_common") +get_filename_component(root_dir "${CMAKE_CURRENT_SOURCE_DIR}" DIRECTORY) + +file(GLOB_RECURSE LIBRARY_SRC ${root_dir}/src/*.cpp) +file(GLOB_RECURSE LIBRARY_HEADERS ${root_dir}/include/*.hpp) + +add_library(${TARGET_NAME} STATIC ${LIBRARY_SRC} ${LIBRARY_HEADERS}) +if(NOT BUILD_SHARED_LIBS) + target_compile_definitions(${TARGET_NAME} PRIVATE OPENVINO_STATIC_LIBRARY) +endif() + +target_link_libraries(${TARGET_NAME} PRIVATE openvino::util) +add_library(openvino::frontend::tensorflow_common ALIAS ${TARGET_NAME}) +target_include_directories(${TARGET_NAME} + PUBLIC + $ + PRIVATE + ${root_dir}/src + $) + +add_clang_format_target(${TARGET_NAME}_clang FOR_TARGETS ${TARGET_NAME}) +ov_install_static_lib(${TARGET_NAME} ${OV_CPACK_COMP_CORE}) diff --git a/src/frontends/tensorflow/src/helper_transforms/block_lstm_replacer.cpp b/src/frontends/tensorflow_common/src/helper_transforms/block_lstm_replacer.cpp similarity index 100% rename from src/frontends/tensorflow/src/helper_transforms/block_lstm_replacer.cpp rename to src/frontends/tensorflow_common/src/helper_transforms/block_lstm_replacer.cpp diff --git a/src/frontends/tensorflow/src/helper_transforms/embedding_segments_feature_fusing.cpp b/src/frontends/tensorflow_common/src/helper_transforms/embedding_segments_feature_fusing.cpp similarity index 100% rename from src/frontends/tensorflow/src/helper_transforms/embedding_segments_feature_fusing.cpp rename to src/frontends/tensorflow_common/src/helper_transforms/embedding_segments_feature_fusing.cpp diff --git a/src/frontends/tensorflow/src/helper_transforms/gru_block_cell_replacer.cpp b/src/frontends/tensorflow_common/src/helper_transforms/gru_block_cell_replacer.cpp similarity index 100% rename from src/frontends/tensorflow/src/helper_transforms/gru_block_cell_replacer.cpp rename to src/frontends/tensorflow_common/src/helper_transforms/gru_block_cell_replacer.cpp diff --git a/src/frontends/tensorflow/src/op/addN.cpp b/src/frontends/tensorflow_common/src/op/addN.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/addN.cpp rename to src/frontends/tensorflow_common/src/op/addN.cpp index 02136387612..e7b260b5070 100644 --- a/src/frontends/tensorflow/src/op/addN.cpp +++ b/src/frontends/tensorflow_common/src/op/addN.cpp @@ -4,7 +4,7 @@ #include -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/arg_min_max.cpp b/src/frontends/tensorflow_common/src/op/arg_min_max.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/arg_min_max.cpp rename to src/frontends/tensorflow_common/src/op/arg_min_max.cpp index 7e7ca50a855..42cfe8867da 100644 --- a/src/frontends/tensorflow/src/op/arg_min_max.cpp +++ b/src/frontends/tensorflow_common/src/op/arg_min_max.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/argdef_ops.cpp b/src/frontends/tensorflow_common/src/op/argdef_ops.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/argdef_ops.cpp rename to src/frontends/tensorflow_common/src/op/argdef_ops.cpp index a02e800a05b..6641e508026 100644 --- a/src/frontends/tensorflow/src/op/argdef_ops.cpp +++ b/src/frontends/tensorflow_common/src/op/argdef_ops.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/assert.cpp b/src/frontends/tensorflow_common/src/op/assert.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/assert.cpp rename to src/frontends/tensorflow_common/src/op/assert.cpp index edd93393f95..5275e85a8c2 100644 --- a/src/frontends/tensorflow/src/op/assert.cpp +++ b/src/frontends/tensorflow_common/src/op/assert.cpp @@ -4,7 +4,7 @@ #include -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/core/validation_util.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/avg_pool.cpp b/src/frontends/tensorflow_common/src/op/avg_pool.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/avg_pool.cpp rename to src/frontends/tensorflow_common/src/op/avg_pool.cpp index 7fb00eb3bc2..4f2cb7b3507 100644 --- a/src/frontends/tensorflow/src/op/avg_pool.cpp +++ b/src/frontends/tensorflow_common/src/op/avg_pool.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/bias_add.cpp b/src/frontends/tensorflow_common/src/op/bias_add.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/bias_add.cpp rename to src/frontends/tensorflow_common/src/op/bias_add.cpp index ca5e48945ed..67e51a00767 100644 --- a/src/frontends/tensorflow/src/op/bias_add.cpp +++ b/src/frontends/tensorflow_common/src/op/bias_add.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/binary_op.cpp b/src/frontends/tensorflow_common/src/op/binary_op.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/binary_op.cpp rename to src/frontends/tensorflow_common/src/op/binary_op.cpp index fecc7ac86de..e91029a14c4 100644 --- a/src/frontends/tensorflow/src/op/binary_op.cpp +++ b/src/frontends/tensorflow_common/src/op/binary_op.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/broadcast_args.cpp b/src/frontends/tensorflow_common/src/op/broadcast_args.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/broadcast_args.cpp rename to src/frontends/tensorflow_common/src/op/broadcast_args.cpp index 4ebb649f975..47e42cd473f 100644 --- a/src/frontends/tensorflow/src/op/broadcast_args.cpp +++ b/src/frontends/tensorflow_common/src/op/broadcast_args.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/broadcast_to.cpp b/src/frontends/tensorflow_common/src/op/broadcast_to.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/broadcast_to.cpp rename to src/frontends/tensorflow_common/src/op/broadcast_to.cpp index a0416775ca2..68d78e18871 100644 --- a/src/frontends/tensorflow/src/op/broadcast_to.cpp +++ b/src/frontends/tensorflow_common/src/op/broadcast_to.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/bucketize.cpp b/src/frontends/tensorflow_common/src/op/bucketize.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/bucketize.cpp rename to src/frontends/tensorflow_common/src/op/bucketize.cpp index f0b04f9c323..e30913b4011 100644 --- a/src/frontends/tensorflow/src/op/bucketize.cpp +++ b/src/frontends/tensorflow_common/src/op/bucketize.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/cast.cpp b/src/frontends/tensorflow_common/src/op/cast.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/cast.cpp rename to src/frontends/tensorflow_common/src/op/cast.cpp index 8266348d9f6..7e0b268dc17 100644 --- a/src/frontends/tensorflow/src/op/cast.cpp +++ b/src/frontends/tensorflow_common/src/op/cast.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/clip_by_value.cpp b/src/frontends/tensorflow_common/src/op/clip_by_value.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/clip_by_value.cpp rename to src/frontends/tensorflow_common/src/op/clip_by_value.cpp index f7dec0cdfc0..c4dff909ee4 100644 --- a/src/frontends/tensorflow/src/op/clip_by_value.cpp +++ b/src/frontends/tensorflow_common/src/op/clip_by_value.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/concat.cpp b/src/frontends/tensorflow_common/src/op/concat.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/concat.cpp rename to src/frontends/tensorflow_common/src/op/concat.cpp index e32e04ab7f3..a53a8275693 100644 --- a/src/frontends/tensorflow/src/op/concat.cpp +++ b/src/frontends/tensorflow_common/src/op/concat.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/const.cpp b/src/frontends/tensorflow_common/src/op/const.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/const.cpp rename to src/frontends/tensorflow_common/src/op/const.cpp index 766d912e277..ce94d065d92 100644 --- a/src/frontends/tensorflow/src/op/const.cpp +++ b/src/frontends/tensorflow_common/src/op/const.cpp @@ -2,8 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 // +#include "common_op_table.hpp" #include "helper_ops/unsupported_constant.hpp" -#include "op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/conv_2d.cpp b/src/frontends/tensorflow_common/src/op/conv_2d.cpp similarity index 93% rename from src/frontends/tensorflow/src/op/conv_2d.cpp rename to src/frontends/tensorflow_common/src/op/conv_2d.cpp index 35abb6db53a..726f232b3e3 100644 --- a/src/frontends/tensorflow/src/op/conv_2d.cpp +++ b/src/frontends/tensorflow_common/src/op/conv_2d.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" #include "utils.hpp" diff --git a/src/frontends/tensorflow/src/op/conv_2d_backprop.cpp b/src/frontends/tensorflow_common/src/op/conv_2d_backprop.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/conv_2d_backprop.cpp rename to src/frontends/tensorflow_common/src/op/conv_2d_backprop.cpp index 24e081d61a3..59083e0bed4 100644 --- a/src/frontends/tensorflow/src/op/conv_2d_backprop.cpp +++ b/src/frontends/tensorflow_common/src/op/conv_2d_backprop.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/op/util/attr_types.hpp" #include "openvino/opsets/opset8.hpp" #include "utils.hpp" diff --git a/src/frontends/tensorflow/src/op/conv_3d.cpp b/src/frontends/tensorflow_common/src/op/conv_3d.cpp similarity index 93% rename from src/frontends/tensorflow/src/op/conv_3d.cpp rename to src/frontends/tensorflow_common/src/op/conv_3d.cpp index e59b842285e..ce2ef924456 100644 --- a/src/frontends/tensorflow/src/op/conv_3d.cpp +++ b/src/frontends/tensorflow_common/src/op/conv_3d.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/conv_3d_backprop.cpp b/src/frontends/tensorflow_common/src/op/conv_3d_backprop.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/conv_3d_backprop.cpp rename to src/frontends/tensorflow_common/src/op/conv_3d_backprop.cpp index 85dee66a4e2..bed4d115912 100644 --- a/src/frontends/tensorflow/src/op/conv_3d_backprop.cpp +++ b/src/frontends/tensorflow_common/src/op/conv_3d_backprop.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/crop_and_resize.cpp b/src/frontends/tensorflow_common/src/op/crop_and_resize.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/crop_and_resize.cpp rename to src/frontends/tensorflow_common/src/op/crop_and_resize.cpp index fe26ff4ac5d..cd6e6b39f39 100644 --- a/src/frontends/tensorflow/src/op/crop_and_resize.cpp +++ b/src/frontends/tensorflow_common/src/op/crop_and_resize.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/ctc_greedy_decoder.cpp b/src/frontends/tensorflow_common/src/op/ctc_greedy_decoder.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/ctc_greedy_decoder.cpp rename to src/frontends/tensorflow_common/src/op/ctc_greedy_decoder.cpp index 4b80ec97a78..1d8f45c1d2e 100644 --- a/src/frontends/tensorflow/src/op/ctc_greedy_decoder.cpp +++ b/src/frontends/tensorflow_common/src/op/ctc_greedy_decoder.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/ctc_loss.cpp b/src/frontends/tensorflow_common/src/op/ctc_loss.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/ctc_loss.cpp rename to src/frontends/tensorflow_common/src/op/ctc_loss.cpp index 078001371b2..0c7bab96065 100644 --- a/src/frontends/tensorflow/src/op/ctc_loss.cpp +++ b/src/frontends/tensorflow_common/src/op/ctc_loss.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/cumsum.cpp b/src/frontends/tensorflow_common/src/op/cumsum.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/cumsum.cpp rename to src/frontends/tensorflow_common/src/op/cumsum.cpp index 3e8337c7392..cfffbb0c0b8 100644 --- a/src/frontends/tensorflow/src/op/cumsum.cpp +++ b/src/frontends/tensorflow_common/src/op/cumsum.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/depth_to_space.cpp b/src/frontends/tensorflow_common/src/op/depth_to_space.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/depth_to_space.cpp rename to src/frontends/tensorflow_common/src/op/depth_to_space.cpp index a8bf22bb4a5..fe1b0ed1b34 100644 --- a/src/frontends/tensorflow/src/op/depth_to_space.cpp +++ b/src/frontends/tensorflow_common/src/op/depth_to_space.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/depthwise_conv_2d.cpp b/src/frontends/tensorflow_common/src/op/depthwise_conv_2d.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/depthwise_conv_2d.cpp rename to src/frontends/tensorflow_common/src/op/depthwise_conv_2d.cpp index c5afdc773d0..9dda6478279 100644 --- a/src/frontends/tensorflow/src/op/depthwise_conv_2d.cpp +++ b/src/frontends/tensorflow_common/src/op/depthwise_conv_2d.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/dynamic_partition.cpp b/src/frontends/tensorflow_common/src/op/dynamic_partition.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/dynamic_partition.cpp rename to src/frontends/tensorflow_common/src/op/dynamic_partition.cpp index 3b4a7bcedc2..6acc7526646 100644 --- a/src/frontends/tensorflow/src/op/dynamic_partition.cpp +++ b/src/frontends/tensorflow_common/src/op/dynamic_partition.cpp @@ -4,7 +4,7 @@ #include -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset9.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/einsum.cpp b/src/frontends/tensorflow_common/src/op/einsum.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/einsum.cpp rename to src/frontends/tensorflow_common/src/op/einsum.cpp index 5fcbf46d979..f6d121a93da 100644 --- a/src/frontends/tensorflow/src/op/einsum.cpp +++ b/src/frontends/tensorflow_common/src/op/einsum.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/elu.cpp b/src/frontends/tensorflow_common/src/op/elu.cpp similarity index 88% rename from src/frontends/tensorflow/src/op/elu.cpp rename to src/frontends/tensorflow_common/src/op/elu.cpp index 461ec5471b8..a2833000141 100644 --- a/src/frontends/tensorflow/src/op/elu.cpp +++ b/src/frontends/tensorflow_common/src/op/elu.cpp @@ -2,8 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" -#include "openvino/frontend/tensorflow/node_context.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/expand_dims.cpp b/src/frontends/tensorflow_common/src/op/expand_dims.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/expand_dims.cpp rename to src/frontends/tensorflow_common/src/op/expand_dims.cpp index 1b4e30df6c9..bf0386ab763 100644 --- a/src/frontends/tensorflow/src/op/expand_dims.cpp +++ b/src/frontends/tensorflow_common/src/op/expand_dims.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/extract_image_patches.cpp b/src/frontends/tensorflow_common/src/op/extract_image_patches.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/extract_image_patches.cpp rename to src/frontends/tensorflow_common/src/op/extract_image_patches.cpp index e627cf89173..0c1ae065787 100644 --- a/src/frontends/tensorflow/src/op/extract_image_patches.cpp +++ b/src/frontends/tensorflow_common/src/op/extract_image_patches.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/op/util/attr_types.hpp" #include "openvino/opsets/opset8.hpp" #include "utils.hpp" diff --git a/src/frontends/tensorflow/src/op/fake_quant_min_max_vars.cpp b/src/frontends/tensorflow_common/src/op/fake_quant_min_max_vars.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/fake_quant_min_max_vars.cpp rename to src/frontends/tensorflow_common/src/op/fake_quant_min_max_vars.cpp index 8d059a21660..aed41eea03e 100644 --- a/src/frontends/tensorflow/src/op/fake_quant_min_max_vars.cpp +++ b/src/frontends/tensorflow_common/src/op/fake_quant_min_max_vars.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/fill.cpp b/src/frontends/tensorflow_common/src/op/fill.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/fill.cpp rename to src/frontends/tensorflow_common/src/op/fill.cpp index db134abb307..bce098eb5bd 100644 --- a/src/frontends/tensorflow/src/op/fill.cpp +++ b/src/frontends/tensorflow_common/src/op/fill.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/fused_batch_norm.cpp b/src/frontends/tensorflow_common/src/op/fused_batch_norm.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/fused_batch_norm.cpp rename to src/frontends/tensorflow_common/src/op/fused_batch_norm.cpp index e7c08654242..1b4c67f2027 100644 --- a/src/frontends/tensorflow/src/op/fused_batch_norm.cpp +++ b/src/frontends/tensorflow_common/src/op/fused_batch_norm.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/gather.cpp b/src/frontends/tensorflow_common/src/op/gather.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/gather.cpp rename to src/frontends/tensorflow_common/src/op/gather.cpp index 7de53bbe918..6716304c0a2 100644 --- a/src/frontends/tensorflow/src/op/gather.cpp +++ b/src/frontends/tensorflow_common/src/op/gather.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/identity.cpp b/src/frontends/tensorflow_common/src/op/identity.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/identity.cpp rename to src/frontends/tensorflow_common/src/op/identity.cpp index 9f31d876c0e..41a17ae538a 100644 --- a/src/frontends/tensorflow/src/op/identity.cpp +++ b/src/frontends/tensorflow_common/src/op/identity.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/interpolate.cpp b/src/frontends/tensorflow_common/src/op/interpolate.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/interpolate.cpp rename to src/frontends/tensorflow_common/src/op/interpolate.cpp index 244668b12ea..e35cc51f326 100644 --- a/src/frontends/tensorflow/src/op/interpolate.cpp +++ b/src/frontends/tensorflow_common/src/op/interpolate.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/l2_loss.cpp b/src/frontends/tensorflow_common/src/op/l2_loss.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/l2_loss.cpp rename to src/frontends/tensorflow_common/src/op/l2_loss.cpp index ab6355577fc..989952b5b69 100644 --- a/src/frontends/tensorflow/src/op/l2_loss.cpp +++ b/src/frontends/tensorflow_common/src/op/l2_loss.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/leaky_relu.cpp b/src/frontends/tensorflow_common/src/op/leaky_relu.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/leaky_relu.cpp rename to src/frontends/tensorflow_common/src/op/leaky_relu.cpp index c26e871b041..d344a9f0247 100644 --- a/src/frontends/tensorflow/src/op/leaky_relu.cpp +++ b/src/frontends/tensorflow_common/src/op/leaky_relu.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/linspace.cpp b/src/frontends/tensorflow_common/src/op/linspace.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/linspace.cpp rename to src/frontends/tensorflow_common/src/op/linspace.cpp index 8df9be51e9c..77461d1f513 100644 --- a/src/frontends/tensorflow/src/op/linspace.cpp +++ b/src/frontends/tensorflow_common/src/op/linspace.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/list_diff.cpp b/src/frontends/tensorflow_common/src/op/list_diff.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/list_diff.cpp rename to src/frontends/tensorflow_common/src/op/list_diff.cpp index 439f0ef4b3f..1a321aea754 100644 --- a/src/frontends/tensorflow/src/op/list_diff.cpp +++ b/src/frontends/tensorflow_common/src/op/list_diff.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/log1p.cpp b/src/frontends/tensorflow_common/src/op/log1p.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/log1p.cpp rename to src/frontends/tensorflow_common/src/op/log1p.cpp index 941e4f8d675..07caf09154a 100644 --- a/src/frontends/tensorflow/src/op/log1p.cpp +++ b/src/frontends/tensorflow_common/src/op/log1p.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/log_softmax.cpp b/src/frontends/tensorflow_common/src/op/log_softmax.cpp similarity index 94% rename from src/frontends/tensorflow/src/op/log_softmax.cpp rename to src/frontends/tensorflow_common/src/op/log_softmax.cpp index c7ff5e535e0..c92c8b4e888 100644 --- a/src/frontends/tensorflow/src/op/log_softmax.cpp +++ b/src/frontends/tensorflow_common/src/op/log_softmax.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/lrn.cpp b/src/frontends/tensorflow_common/src/op/lrn.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/lrn.cpp rename to src/frontends/tensorflow_common/src/op/lrn.cpp index ea7d010baf3..42f31f00e72 100644 --- a/src/frontends/tensorflow/src/op/lrn.cpp +++ b/src/frontends/tensorflow_common/src/op/lrn.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" #include "utils.hpp" diff --git a/src/frontends/tensorflow/src/op/matmul.cpp b/src/frontends/tensorflow_common/src/op/matmul.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/matmul.cpp rename to src/frontends/tensorflow_common/src/op/matmul.cpp index 35aa03c6890..dd3aba71ddf 100644 --- a/src/frontends/tensorflow/src/op/matmul.cpp +++ b/src/frontends/tensorflow_common/src/op/matmul.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/matrix_diag.cpp b/src/frontends/tensorflow_common/src/op/matrix_diag.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/matrix_diag.cpp rename to src/frontends/tensorflow_common/src/op/matrix_diag.cpp index fe52a13cf68..8657e05e2f1 100644 --- a/src/frontends/tensorflow/src/op/matrix_diag.cpp +++ b/src/frontends/tensorflow_common/src/op/matrix_diag.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/op/util/attr_types.hpp" #include "openvino/opsets/opset8.hpp" #include "utils.hpp" diff --git a/src/frontends/tensorflow/src/op/max_pool.cpp b/src/frontends/tensorflow_common/src/op/max_pool.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/max_pool.cpp rename to src/frontends/tensorflow_common/src/op/max_pool.cpp index 3264c8a1616..6d698b6c3b8 100644 --- a/src/frontends/tensorflow/src/op/max_pool.cpp +++ b/src/frontends/tensorflow_common/src/op/max_pool.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" #include "utils.hpp" diff --git a/src/frontends/tensorflow/src/op/no_op.cpp b/src/frontends/tensorflow_common/src/op/no_op.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/no_op.cpp rename to src/frontends/tensorflow_common/src/op/no_op.cpp index d07764bf9e8..77a636a7c54 100644 --- a/src/frontends/tensorflow/src/op/no_op.cpp +++ b/src/frontends/tensorflow_common/src/op/no_op.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/non_max_suppression.cpp b/src/frontends/tensorflow_common/src/op/non_max_suppression.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/non_max_suppression.cpp rename to src/frontends/tensorflow_common/src/op/non_max_suppression.cpp index 0a0d39cf9ea..e0b59ba3707 100644 --- a/src/frontends/tensorflow/src/op/non_max_suppression.cpp +++ b/src/frontends/tensorflow_common/src/op/non_max_suppression.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/normalize_l2.cpp b/src/frontends/tensorflow_common/src/op/normalize_l2.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/normalize_l2.cpp rename to src/frontends/tensorflow_common/src/op/normalize_l2.cpp index b2520fed4e0..423766ab3a6 100644 --- a/src/frontends/tensorflow/src/op/normalize_l2.cpp +++ b/src/frontends/tensorflow_common/src/op/normalize_l2.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/one_hot.cpp b/src/frontends/tensorflow_common/src/op/one_hot.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/one_hot.cpp rename to src/frontends/tensorflow_common/src/op/one_hot.cpp index ade067fdccd..1f9e55a67f1 100644 --- a/src/frontends/tensorflow/src/op/one_hot.cpp +++ b/src/frontends/tensorflow_common/src/op/one_hot.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/pack.cpp b/src/frontends/tensorflow_common/src/op/pack.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/pack.cpp rename to src/frontends/tensorflow_common/src/op/pack.cpp index 7ef3dbfe461..d4502ad75c4 100644 --- a/src/frontends/tensorflow/src/op/pack.cpp +++ b/src/frontends/tensorflow_common/src/op/pack.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/pad.cpp b/src/frontends/tensorflow_common/src/op/pad.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/pad.cpp rename to src/frontends/tensorflow_common/src/op/pad.cpp index 30a864a9d70..2c0ce5e7da3 100644 --- a/src/frontends/tensorflow/src/op/pad.cpp +++ b/src/frontends/tensorflow_common/src/op/pad.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset9.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/parallel_dynamic_stitch.cpp b/src/frontends/tensorflow_common/src/op/parallel_dynamic_stitch.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/parallel_dynamic_stitch.cpp rename to src/frontends/tensorflow_common/src/op/parallel_dynamic_stitch.cpp index 3b2301328fe..771168e6bf2 100644 --- a/src/frontends/tensorflow/src/op/parallel_dynamic_stitch.cpp +++ b/src/frontends/tensorflow_common/src/op/parallel_dynamic_stitch.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset9.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/placeholder.cpp b/src/frontends/tensorflow_common/src/op/placeholder.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/placeholder.cpp rename to src/frontends/tensorflow_common/src/op/placeholder.cpp index 5673d167c4a..4b5b6aa00d4 100644 --- a/src/frontends/tensorflow/src/op/placeholder.cpp +++ b/src/frontends/tensorflow_common/src/op/placeholder.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/random_uniform.cpp b/src/frontends/tensorflow_common/src/op/random_uniform.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/random_uniform.cpp rename to src/frontends/tensorflow_common/src/op/random_uniform.cpp index 4dbcb6f47f2..170ced1f054 100644 --- a/src/frontends/tensorflow/src/op/random_uniform.cpp +++ b/src/frontends/tensorflow_common/src/op/random_uniform.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/range.cpp b/src/frontends/tensorflow_common/src/op/range.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/range.cpp rename to src/frontends/tensorflow_common/src/op/range.cpp index a6a7ce5e073..f926a2cd792 100644 --- a/src/frontends/tensorflow/src/op/range.cpp +++ b/src/frontends/tensorflow_common/src/op/range.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/rank.cpp b/src/frontends/tensorflow_common/src/op/rank.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/rank.cpp rename to src/frontends/tensorflow_common/src/op/rank.cpp index c6fa758da84..8a87eac88e8 100644 --- a/src/frontends/tensorflow/src/op/rank.cpp +++ b/src/frontends/tensorflow_common/src/op/rank.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/reciprocal.cpp b/src/frontends/tensorflow_common/src/op/reciprocal.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/reciprocal.cpp rename to src/frontends/tensorflow_common/src/op/reciprocal.cpp index c4a9fc5c783..6ede8b48c56 100644 --- a/src/frontends/tensorflow/src/op/reciprocal.cpp +++ b/src/frontends/tensorflow_common/src/op/reciprocal.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/reduce.cpp b/src/frontends/tensorflow_common/src/op/reduce.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/reduce.cpp rename to src/frontends/tensorflow_common/src/op/reduce.cpp index 71bd4b916bb..8ad47b85a1b 100644 --- a/src/frontends/tensorflow/src/op/reduce.cpp +++ b/src/frontends/tensorflow_common/src/op/reduce.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/relu_6.cpp b/src/frontends/tensorflow_common/src/op/relu_6.cpp similarity index 94% rename from src/frontends/tensorflow/src/op/relu_6.cpp rename to src/frontends/tensorflow_common/src/op/relu_6.cpp index 90de279094f..d30339ca4c7 100644 --- a/src/frontends/tensorflow/src/op/relu_6.cpp +++ b/src/frontends/tensorflow_common/src/op/relu_6.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/reshape.cpp b/src/frontends/tensorflow_common/src/op/reshape.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/reshape.cpp rename to src/frontends/tensorflow_common/src/op/reshape.cpp index 8e0c1e9b83e..959fe86f256 100644 --- a/src/frontends/tensorflow/src/op/reshape.cpp +++ b/src/frontends/tensorflow_common/src/op/reshape.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/reverse.cpp b/src/frontends/tensorflow_common/src/op/reverse.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/reverse.cpp rename to src/frontends/tensorflow_common/src/op/reverse.cpp index 3306a04af18..15769842129 100644 --- a/src/frontends/tensorflow/src/op/reverse.cpp +++ b/src/frontends/tensorflow_common/src/op/reverse.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset9.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/reverse_sequence.cpp b/src/frontends/tensorflow_common/src/op/reverse_sequence.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/reverse_sequence.cpp rename to src/frontends/tensorflow_common/src/op/reverse_sequence.cpp index cc0ab1d27e8..10ce74cf1c5 100644 --- a/src/frontends/tensorflow/src/op/reverse_sequence.cpp +++ b/src/frontends/tensorflow_common/src/op/reverse_sequence.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/roll.cpp b/src/frontends/tensorflow_common/src/op/roll.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/roll.cpp rename to src/frontends/tensorflow_common/src/op/roll.cpp index 4b3cf3cbc40..3f53e178a38 100644 --- a/src/frontends/tensorflow/src/op/roll.cpp +++ b/src/frontends/tensorflow_common/src/op/roll.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/round.cpp b/src/frontends/tensorflow_common/src/op/round.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/round.cpp rename to src/frontends/tensorflow_common/src/op/round.cpp index fa6113d11ac..1e911e68af4 100644 --- a/src/frontends/tensorflow/src/op/round.cpp +++ b/src/frontends/tensorflow_common/src/op/round.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/rsqrt.cpp b/src/frontends/tensorflow_common/src/op/rsqrt.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/rsqrt.cpp rename to src/frontends/tensorflow_common/src/op/rsqrt.cpp index 79e50298126..4edcf7196a5 100644 --- a/src/frontends/tensorflow/src/op/rsqrt.cpp +++ b/src/frontends/tensorflow_common/src/op/rsqrt.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/scatter_nd.cpp b/src/frontends/tensorflow_common/src/op/scatter_nd.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/scatter_nd.cpp rename to src/frontends/tensorflow_common/src/op/scatter_nd.cpp index 2b230420ae5..d008c073aff 100644 --- a/src/frontends/tensorflow/src/op/scatter_nd.cpp +++ b/src/frontends/tensorflow_common/src/op/scatter_nd.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/segment_sum.cpp b/src/frontends/tensorflow_common/src/op/segment_sum.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/segment_sum.cpp rename to src/frontends/tensorflow_common/src/op/segment_sum.cpp index 91690499862..36a1c6ca379 100644 --- a/src/frontends/tensorflow/src/op/segment_sum.cpp +++ b/src/frontends/tensorflow_common/src/op/segment_sum.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset9.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/select.cpp b/src/frontends/tensorflow_common/src/op/select.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/select.cpp rename to src/frontends/tensorflow_common/src/op/select.cpp index 4103e8d9930..ef759522193 100644 --- a/src/frontends/tensorflow/src/op/select.cpp +++ b/src/frontends/tensorflow_common/src/op/select.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/shape.cpp b/src/frontends/tensorflow_common/src/op/shape.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/shape.cpp rename to src/frontends/tensorflow_common/src/op/shape.cpp index bd7e7b3b883..d6cfda1102c 100644 --- a/src/frontends/tensorflow/src/op/shape.cpp +++ b/src/frontends/tensorflow_common/src/op/shape.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/size.cpp b/src/frontends/tensorflow_common/src/op/size.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/size.cpp rename to src/frontends/tensorflow_common/src/op/size.cpp index b6ba2fecec7..a3ce8784cb0 100644 --- a/src/frontends/tensorflow/src/op/size.cpp +++ b/src/frontends/tensorflow_common/src/op/size.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/slice.cpp b/src/frontends/tensorflow_common/src/op/slice.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/slice.cpp rename to src/frontends/tensorflow_common/src/op/slice.cpp index 77ffc16433a..243a8259367 100644 --- a/src/frontends/tensorflow/src/op/slice.cpp +++ b/src/frontends/tensorflow_common/src/op/slice.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/softmax.cpp b/src/frontends/tensorflow_common/src/op/softmax.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/softmax.cpp rename to src/frontends/tensorflow_common/src/op/softmax.cpp index 3dae8805c9a..dd7c298def0 100644 --- a/src/frontends/tensorflow/src/op/softmax.cpp +++ b/src/frontends/tensorflow_common/src/op/softmax.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/space_to_batch_nd.cpp b/src/frontends/tensorflow_common/src/op/space_to_batch_nd.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/space_to_batch_nd.cpp rename to src/frontends/tensorflow_common/src/op/space_to_batch_nd.cpp index d626d8c72fc..18dffcaf5ab 100644 --- a/src/frontends/tensorflow/src/op/space_to_batch_nd.cpp +++ b/src/frontends/tensorflow_common/src/op/space_to_batch_nd.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/space_to_depth.cpp b/src/frontends/tensorflow_common/src/op/space_to_depth.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/space_to_depth.cpp rename to src/frontends/tensorflow_common/src/op/space_to_depth.cpp index a2a57bbeb71..ab06cdb0a2d 100644 --- a/src/frontends/tensorflow/src/op/space_to_depth.cpp +++ b/src/frontends/tensorflow_common/src/op/space_to_depth.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/sparse_to_dense.cpp b/src/frontends/tensorflow_common/src/op/sparse_to_dense.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/sparse_to_dense.cpp rename to src/frontends/tensorflow_common/src/op/sparse_to_dense.cpp index 0a6a7895945..b460eb02b01 100644 --- a/src/frontends/tensorflow/src/op/sparse_to_dense.cpp +++ b/src/frontends/tensorflow_common/src/op/sparse_to_dense.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/split.cpp b/src/frontends/tensorflow_common/src/op/split.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/split.cpp rename to src/frontends/tensorflow_common/src/op/split.cpp index 099009eb063..fd1dafd580a 100644 --- a/src/frontends/tensorflow/src/op/split.cpp +++ b/src/frontends/tensorflow_common/src/op/split.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/sqrt.cpp b/src/frontends/tensorflow_common/src/op/sqrt.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/sqrt.cpp rename to src/frontends/tensorflow_common/src/op/sqrt.cpp index 810843c348d..1bd098ebbba 100644 --- a/src/frontends/tensorflow/src/op/sqrt.cpp +++ b/src/frontends/tensorflow_common/src/op/sqrt.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/square.cpp b/src/frontends/tensorflow_common/src/op/square.cpp similarity index 94% rename from src/frontends/tensorflow/src/op/square.cpp rename to src/frontends/tensorflow_common/src/op/square.cpp index 84035d649e9..94d9c4a623d 100644 --- a/src/frontends/tensorflow/src/op/square.cpp +++ b/src/frontends/tensorflow_common/src/op/square.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/squeeze.cpp b/src/frontends/tensorflow_common/src/op/squeeze.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/squeeze.cpp rename to src/frontends/tensorflow_common/src/op/squeeze.cpp index 68c0a4e87b7..37bc5a0d375 100644 --- a/src/frontends/tensorflow/src/op/squeeze.cpp +++ b/src/frontends/tensorflow_common/src/op/squeeze.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/strided_slice.cpp b/src/frontends/tensorflow_common/src/op/strided_slice.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/strided_slice.cpp rename to src/frontends/tensorflow_common/src/op/strided_slice.cpp index 02dbdb540cb..c0d83cd76d7 100644 --- a/src/frontends/tensorflow/src/op/strided_slice.cpp +++ b/src/frontends/tensorflow_common/src/op/strided_slice.cpp @@ -4,7 +4,7 @@ #include -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/tile.cpp b/src/frontends/tensorflow_common/src/op/tile.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/tile.cpp rename to src/frontends/tensorflow_common/src/op/tile.cpp index d85c567e5b9..39324ae1233 100644 --- a/src/frontends/tensorflow/src/op/tile.cpp +++ b/src/frontends/tensorflow_common/src/op/tile.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/top_k.cpp b/src/frontends/tensorflow_common/src/op/top_k.cpp similarity index 98% rename from src/frontends/tensorflow/src/op/top_k.cpp rename to src/frontends/tensorflow_common/src/op/top_k.cpp index 5f90b1c55dd..42c38975cdc 100644 --- a/src/frontends/tensorflow/src/op/top_k.cpp +++ b/src/frontends/tensorflow_common/src/op/top_k.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/transpose.cpp b/src/frontends/tensorflow_common/src/op/transpose.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/transpose.cpp rename to src/frontends/tensorflow_common/src/op/transpose.cpp index 0222561d642..e4baf454ec9 100644 --- a/src/frontends/tensorflow/src/op/transpose.cpp +++ b/src/frontends/tensorflow_common/src/op/transpose.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/unary_op.cpp b/src/frontends/tensorflow_common/src/op/unary_op.cpp similarity index 99% rename from src/frontends/tensorflow/src/op/unary_op.cpp rename to src/frontends/tensorflow_common/src/op/unary_op.cpp index 171c1131256..a227740533d 100644 --- a/src/frontends/tensorflow/src/op/unary_op.cpp +++ b/src/frontends/tensorflow_common/src/op/unary_op.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" #include "openvino/opsets/opset8.hpp" #include "openvino/opsets/opset9.hpp" diff --git a/src/frontends/tensorflow/src/op/unique.cpp b/src/frontends/tensorflow_common/src/op/unique.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/unique.cpp rename to src/frontends/tensorflow_common/src/op/unique.cpp index 938e7e4e539..379ffe9e8ea 100644 --- a/src/frontends/tensorflow/src/op/unique.cpp +++ b/src/frontends/tensorflow_common/src/op/unique.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset10.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/unpack.cpp b/src/frontends/tensorflow_common/src/op/unpack.cpp similarity index 97% rename from src/frontends/tensorflow/src/op/unpack.cpp rename to src/frontends/tensorflow_common/src/op/unpack.cpp index d7a749e2082..53d6581b7b8 100644 --- a/src/frontends/tensorflow/src/op/unpack.cpp +++ b/src/frontends/tensorflow_common/src/op/unpack.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/where.cpp b/src/frontends/tensorflow_common/src/op/where.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/where.cpp rename to src/frontends/tensorflow_common/src/op/where.cpp index 1e75938083e..6968185139d 100644 --- a/src/frontends/tensorflow/src/op/where.cpp +++ b/src/frontends/tensorflow_common/src/op/where.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/xdivy.cpp b/src/frontends/tensorflow_common/src/op/xdivy.cpp similarity index 96% rename from src/frontends/tensorflow/src/op/xdivy.cpp rename to src/frontends/tensorflow_common/src/op/xdivy.cpp index 23b3591cc0a..e16595227ab 100644 --- a/src/frontends/tensorflow/src/op/xdivy.cpp +++ b/src/frontends/tensorflow_common/src/op/xdivy.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/op/zeros_like.cpp b/src/frontends/tensorflow_common/src/op/zeros_like.cpp similarity index 95% rename from src/frontends/tensorflow/src/op/zeros_like.cpp rename to src/frontends/tensorflow_common/src/op/zeros_like.cpp index f67ebeb6026..4baf3ec49f0 100644 --- a/src/frontends/tensorflow/src/op/zeros_like.cpp +++ b/src/frontends/tensorflow_common/src/op/zeros_like.cpp @@ -2,7 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 // -#include "op_table.hpp" +#include "common_op_table.hpp" #include "openvino/opsets/opset8.hpp" using namespace std; diff --git a/src/frontends/tensorflow/src/openvino_conversions.cpp b/src/frontends/tensorflow_common/src/openvino_conversions.cpp similarity index 100% rename from src/frontends/tensorflow/src/openvino_conversions.cpp rename to src/frontends/tensorflow_common/src/openvino_conversions.cpp diff --git a/src/frontends/tensorflow/src/pass/transpose_sinking.cpp b/src/frontends/tensorflow_common/src/pass/transpose_sinking.cpp similarity index 100% rename from src/frontends/tensorflow/src/pass/transpose_sinking.cpp rename to src/frontends/tensorflow_common/src/pass/transpose_sinking.cpp diff --git a/src/frontends/tensorflow/src/place.cpp b/src/frontends/tensorflow_common/src/place.cpp similarity index 99% rename from src/frontends/tensorflow/src/place.cpp rename to src/frontends/tensorflow_common/src/place.cpp index 84e837db155..a5f78976968 100644 --- a/src/frontends/tensorflow/src/place.cpp +++ b/src/frontends/tensorflow_common/src/place.cpp @@ -5,7 +5,7 @@ #include "place.hpp" #include "openvino/frontend/exception.hpp" -#include "openvino/frontend/tensorflow/node_context.hpp" +#include "openvino/frontend/node_context.hpp" namespace ov { namespace frontend { diff --git a/src/frontends/tensorflow/src/utils.cpp b/src/frontends/tensorflow_common/src/utils.cpp similarity index 98% rename from src/frontends/tensorflow/src/utils.cpp rename to src/frontends/tensorflow_common/src/utils.cpp index 3a9b77a3ac6..39c346518f8 100644 --- a/src/frontends/tensorflow/src/utils.cpp +++ b/src/frontends/tensorflow_common/src/utils.cpp @@ -32,7 +32,7 @@ void ov::frontend::tensorflow::set_out_name(const std::string& out_name, const o output.get_tensor().add_names({out_name}); } -ov::op::PadType ov::frontend::tensorflow::convert_tf_padding(const ov::frontend::tensorflow::NodeContext& node, +ov::op::PadType ov::frontend::tensorflow::convert_tf_padding(const ov::frontend::NodeContext& node, const std::string& tf_padding) { std::set supported_ops = {"Conv2D", "Conv2DBackpropInput", @@ -80,7 +80,7 @@ ov::op::PadType ov::frontend::tensorflow::convert_tf_padding(const ov::frontend: return ov::op::PadType::EXPLICIT; } -void ov::frontend::tensorflow::fill_explicit_pads_vectors(const ov::frontend::tensorflow::NodeContext& node, +void ov::frontend::tensorflow::fill_explicit_pads_vectors(const ov::frontend::NodeContext& node, bool is_nhwc, size_t spatial_dims_num, const std::vector& tf_explicit_paddings, @@ -128,7 +128,7 @@ void ov::frontend::tensorflow::fill_explicit_pads_vectors(const ov::frontend::te } } -ov::OutputVector ov::frontend::tensorflow::translate_convolution_op(const ov::frontend::tensorflow::NodeContext& node, +ov::OutputVector ov::frontend::tensorflow::translate_convolution_op(const ov::frontend::NodeContext& node, size_t spatial_dims_num) { TENSORFLOW_OP_VALIDATION(node, spatial_dims_num == 2 || spatial_dims_num == 3, @@ -240,7 +240,7 @@ ov::OutputVector ov::frontend::tensorflow::translate_convolution_op(const ov::fr return {conv}; } -void ov::frontend::tensorflow::default_op_checks(const ov::frontend::tensorflow::NodeContext& node, +void ov::frontend::tensorflow::default_op_checks(const ov::frontend::NodeContext& node, int min_input_size, const std::vector& supported_ops) { auto op_type = node.get_op_type(); diff --git a/src/frontends/tensorflow_common/tests/CMakeLists.txt b/src/frontends/tensorflow_common/tests/CMakeLists.txt new file mode 100644 index 00000000000..b692466dfbd --- /dev/null +++ b/src/frontends/tensorflow_common/tests/CMakeLists.txt @@ -0,0 +1,17 @@ +# Copyright (C) 2018-2022 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +# + +set(TARGET_NAME "ov_tensorflow_common_tests") + +ov_add_test_target( + NAME ${TARGET_NAME} + ROOT ${CMAKE_CURRENT_SOURCE_DIR} + LINK_LIBRARIES + gtest_main_manifest + openvino_tensorflow_common + ADD_CLANG_FORMAT + LABELS + OV + TF_COMMON +) diff --git a/src/frontends/tensorflow/tests/block_lstm_replacer.cpp b/src/frontends/tensorflow_common/tests/block_lstm_replacer.cpp similarity index 100% rename from src/frontends/tensorflow/tests/block_lstm_replacer.cpp rename to src/frontends/tensorflow_common/tests/block_lstm_replacer.cpp diff --git a/src/frontends/tensorflow/tests/gru_block_cell_replacer.cpp b/src/frontends/tensorflow_common/tests/gru_block_cell_replacer.cpp similarity index 100% rename from src/frontends/tensorflow/tests/gru_block_cell_replacer.cpp rename to src/frontends/tensorflow_common/tests/gru_block_cell_replacer.cpp diff --git a/src/frontends/tensorflow/tests/transpose_sinking.cpp b/src/frontends/tensorflow_common/tests/transpose_sinking.cpp similarity index 100% rename from src/frontends/tensorflow/tests/transpose_sinking.cpp rename to src/frontends/tensorflow_common/tests/transpose_sinking.cpp