From f8d071002b6fe0bca2617558221850e01fe202ad Mon Sep 17 00:00:00 2001 From: Mateusz Tabaka Date: Mon, 11 Mar 2024 18:48:04 +0100 Subject: [PATCH 01/15] Fix convert_to_supported_precision for TypeRelaxed types (#23143) If TypeRelaxed's origin input type is undefined let's temporarily override it with original input precision attribute value. During ConstantFolding, some nodes can have temporarily mismatched input types (e.g. Add(f16, f32)). If the node is TypeRelaxed - we're unable to clone it since TypeRelaxed::clone_with_new_inputs creates a clone with 'fake' inputs based on current inputs and that can trigger an exception for certain nodes if the inputs have mismatched types. Ticket: CVS-134604 --- .../openvino/core/constant_fold_utils.hpp | 18 +++- src/core/src/constant_fold_utils.cpp | 85 ++++++++++++++++--- src/core/src/pass/constant_folding.cpp | 33 ++----- src/core/tests/pass/constant_folding.cpp | 29 +++++++ 4 files changed, 121 insertions(+), 44 deletions(-) diff --git a/src/core/dev_api/openvino/core/constant_fold_utils.hpp b/src/core/dev_api/openvino/core/constant_fold_utils.hpp index c62c14de6de35d..cd987a4ef5f3ea 100644 --- a/src/core/dev_api/openvino/core/constant_fold_utils.hpp +++ b/src/core/dev_api/openvino/core/constant_fold_utils.hpp @@ -14,7 +14,19 @@ OPENVINO_API const element::TypeVector& unsupported_types(); OPENVINO_API -bool is_type_unsupported(const ov::element::Type& type); +bool is_type_unsupported(const element::Type& type); + +OPENVINO_API +void save_original_input_precisions(const std::shared_ptr& node); + +OPENVINO_API +bool has_original_input_precision(const Input& input); + +OPENVINO_API +element::Type get_original_input_precision(const Input& input); + +OPENVINO_API +void remove_original_input_precision_attribute(Input& input); OPENVINO_API bool node_requires_precision_conversion(const Node* const node); @@ -25,9 +37,9 @@ OPENVINO_API bool node_requires_precision_conversion(const Node* const node); /// \param node /// /// \return New node with f32 inputs if the inputs require conversion or the input node otherwise -OPENVINO_API std::shared_ptr convert_to_supported_precision(const Node* const node); +OPENVINO_API std::shared_ptr convert_to_supported_precision(Node* const node); -OPENVINO_API std::shared_ptr convert_to_supported_precision(const Node* const node, const OutputVector& inputs); +OPENVINO_API std::shared_ptr convert_to_supported_precision(Node* const node, const OutputVector& inputs); OPENVINO_API bool evaluate_node_with_unsupported_precision(const Node* node, TensorVector& outputs, diff --git a/src/core/src/constant_fold_utils.cpp b/src/core/src/constant_fold_utils.cpp index 6b50406e92393f..1aef7b7cbec761 100644 --- a/src/core/src/constant_fold_utils.cpp +++ b/src/core/src/constant_fold_utils.cpp @@ -25,6 +25,29 @@ bool ov::util::is_type_unsupported(const ov::element::Type& type) { return std::find(unsupported_types.begin(), unsupported_types.end(), type) != unsupported_types.end(); } +void ov::util::save_original_input_precisions(const std::shared_ptr& node) { + for (size_t i = 0; i < node->get_input_size(); i++) { + auto input = node->input(i); + input.get_rt_info()["original_precision"] = input.get_element_type(); + } +} + +bool ov::util::has_original_input_precision(const ov::Input& input) { + return input.get_rt_info().count("original_precision") > 0; +} + +ov::element::Type ov::util::get_original_input_precision(const ov::Input& input) { + return input.get_rt_info().at("original_precision").as(); +} + +void ov::util::remove_original_input_precision_attribute(ov::Input& input) { + auto& rt_info = input.get_rt_info(); + auto it = rt_info.find("original_precision"); + if (it != rt_info.end()) { + rt_info.erase(it); + } +} + namespace { template @@ -105,11 +128,11 @@ static const std::unordered_map ov::util::convert_to_supported_precision(const Node* const node) { +std::shared_ptr ov::util::convert_to_supported_precision(Node* const node) { return ov::util::convert_to_supported_precision(node, node->input_values()); } -std::shared_ptr ov::util::convert_to_supported_precision(const Node* const node, const OutputVector& inputs) { +std::shared_ptr ov::util::convert_to_supported_precision(Node* const node, const OutputVector& inputs) { size_t num_inputs = node->get_input_size(); OutputVector converted_inputs; converted_inputs.reserve(num_inputs); @@ -128,23 +151,49 @@ std::shared_ptr ov::util::convert_to_supported_precision(const Node* c } } - // Create a new node with new (converted) inputs. - auto cloned_node = node->clone_with_new_inputs(converted_inputs); + std::shared_ptr cloned_node; + + auto type_relaxed = dynamic_cast(node); + if (type_relaxed != nullptr) { + // Save TypeRelaxed's origin input types + // If origin input type is undefined let's temporarily override it with original input precision attribute + // value. During ConstantFolding, some nodes can have temporarily mismatched input types (e.g. Add(f16, f32)). + // If the node is TypeRelaxed - we're unable to clone it since TypeRelaxed::clone_with_new_inputs creates a + // clone with 'fake' inputs based on current inputs and that can trigger an exception for certain nodes if the + // inputs have mismatched types. + element::TypeVector origin_input_types; + origin_input_types.reserve(num_inputs); + for (size_t i = 0; i < num_inputs; i++) { + const auto& origin_type = type_relaxed->get_origin_input_type(i); + origin_input_types.push_back(origin_type); + if (origin_type == element::undefined && has_original_input_precision(node->input(i))) { + type_relaxed->set_origin_input_type(get_original_input_precision(node->input(i)), i); + } + } + + cloned_node = node->clone_with_new_inputs(converted_inputs); + + // Restore TypeRelaxed's origin input types + for (size_t i = 0; i < num_inputs; i++) { + type_relaxed->set_origin_input_type(origin_input_types[i], i); + } - // Override TypeRelaxed types - auto type_relaxed = std::dynamic_pointer_cast(cloned_node); - if (type_relaxed) { + auto cloned_type_relaxed = std::dynamic_pointer_cast(cloned_node); + // Override TypeRelaxed types for (size_t i = 0; i < num_inputs; i++) { - if (ov::util::is_type_unsupported(type_relaxed->get_origin_input_type(i))) { - type_relaxed->set_origin_input_type(cloned_node->get_input_element_type(i), i); + if (ov::util::is_type_unsupported(cloned_type_relaxed->get_origin_input_type(i))) { + cloned_type_relaxed->set_origin_input_type(cloned_node->get_input_element_type(i), i); } } for (size_t i = 0; i < cloned_node->get_output_size(); i++) { if (ov::util::is_type_unsupported(cloned_node->get_output_element_type(i))) { - type_relaxed->set_overridden_output_type(element::f32, i); + cloned_type_relaxed->set_overridden_output_type(element::f32, i); } } cloned_node->validate_and_infer_types(); + } else { + // Create a new node with new (converted) inputs. + cloned_node = node->clone_with_new_inputs(converted_inputs); } // Handle nodes which outputs precisions don't depend on input precisions @@ -221,9 +270,19 @@ bool ov::util::evaluate_node_with_unsupported_precision(const ov::Node* node, } } - // evaluate converted node - if (!node->evaluate(converted_output_tensors, converted_input_tensors)) { - return false; + auto type_relaxed = dynamic_cast(node); + if (type_relaxed == nullptr) { + // evaluate node with converted tensors + if (!node->evaluate(converted_output_tensors, converted_input_tensors)) { + return false; + } + } else { + // node is const so let's clone it + auto cloned = node->clone_with_new_inputs(node->input_values()); + cloned = convert_to_supported_precision(cloned.get()); + if (!cloned->evaluate(converted_output_tensors, converted_input_tensors)) { + return false; + } } // convert outputs tensors from f32 to original type if necessary diff --git a/src/core/src/pass/constant_folding.cpp b/src/core/src/pass/constant_folding.cpp index 4ac985bb277ee8..3e93d0da979258 100644 --- a/src/core/src/pass/constant_folding.cpp +++ b/src/core/src/pass/constant_folding.cpp @@ -49,42 +49,19 @@ const auto friendly_name_from = [](const ov::Node& node, const size_t output_cou } }; -static void save_original_input_precisions(const std::shared_ptr& node) { - for (size_t i = 0; i < node->get_input_size(); i++) { - auto input = node->input(i); - input.get_rt_info()["original_precision"] = input.get_element_type(); - } -} - -static bool has_original_input_precision(const ov::Input& input) { - return input.get_rt_info().count("original_precision") > 0; -} - -static ov::element::Type get_original_input_precision(const ov::Input& input) { - return input.get_rt_info().at("original_precision").as(); -} - -static void remove_original_input_precision_attribute(ov::Input& input) { - auto& rt_info = input.get_rt_info(); - auto it = rt_info.find("original_precision"); - if (it != rt_info.end()) { - rt_info.erase(it); - } -} - static bool restore_original_input_precision(const std::shared_ptr& node) { bool restored = false; if (ov::is_type(node)) { auto input = node->input(0); - remove_original_input_precision_attribute(input); + ov::util::remove_original_input_precision_attribute(input); return restored; } for (size_t i = 0; i < node->get_input_size(); i++) { auto input = node->input(i); - if (!has_original_input_precision(input)) + if (!ov::util::has_original_input_precision(input)) continue; - const auto original_type = get_original_input_precision(input); - remove_original_input_precision_attribute(input); + const auto original_type = ov::util::get_original_input_precision(input); + ov::util::remove_original_input_precision_attribute(input); if (original_type != node->get_input_element_type(i)) { auto convert = std::make_shared(node->input_value(i), original_type); ov::OutputVector replacements(1); @@ -206,7 +183,7 @@ bool ov::pass::ConstantFolding::pre_calculated_values_folding(const std::shared_ // we need to convert constants with those types to f32. And at some point - this f32 constant may // become an input to a node that's not constfoldable. Then we need to convert that constant back to // that input's original precision. - save_original_input_precisions(node); + util::save_original_input_precisions(node); if (!node_has_disabled_constant_folding && util::node_requires_precision_conversion(node.get())) { mark_node_requires_precision_conversion(node); } diff --git a/src/core/tests/pass/constant_folding.cpp b/src/core/tests/pass/constant_folding.cpp index f3e1e640881b87..6332e0ce38d5a6 100644 --- a/src/core/tests/pass/constant_folding.cpp +++ b/src/core/tests/pass/constant_folding.cpp @@ -16,6 +16,7 @@ #include "openvino/op/convert_like.hpp" #include "openvino/op/loop.hpp" #include "openvino/op/multiply.hpp" +#include "ov_ops/type_relaxed.hpp" #include "transformations/common_optimizations/disable_shapeof_constant_folding.hpp" #include "transformations/utils/utils.hpp" @@ -4000,6 +4001,34 @@ TEST_P(UnsupportedTypesTest, convert_like) { ASSERT_EQ(m->get_results().size(), 1); } +TEST_P(UnsupportedTypesTest, type_relaxed) { + Shape shape_in{2, 4, 1}; + + const auto& type = GetParam(); + auto cond = op::v0::Constant::create(element::boolean, shape_in, {1}); + auto param = std::make_shared(type, shape_in); + auto constant1 = op::v0::Constant::create(type, shape_in, {2}); + auto then_value = std::make_shared(OutputVector{param, constant1}, 2); + auto constant2 = op::v0::Constant::create(type, shape_in, {3}); + auto else_value = std::make_shared( + constant2, + op::v0::Constant::create(element::u64, Shape{shape_in.size()}, Shape{shape_in[0], shape_in[1], 2})); + auto select = make_shared(cond, then_value, else_value); + auto type_relaxed = make_shared>(*select, + element::TypeVector{element::boolean}, + element::TypeVector{}); + auto m = make_shared(type_relaxed, ParameterVector{param}); + + run_constant_folding(m); + + EXPECT_EQ(m->get_ops().size(), 7); + EXPECT_EQ(count_ops_of_type(m), 1); + EXPECT_EQ(count_ops_of_type(m), 3); + EXPECT_EQ(count_ops_of_type(m), 0); + EXPECT_EQ(count_ops_of_type(m), 1); + ASSERT_EQ(m->get_results().size(), 1); +} + static std::string unsupported_types_test_case_name(const testing::TestParamInfo& info) { return info.param.get_type_name(); } From 15921ea1e0433daed74b82dcce406f75e5b1e987 Mon Sep 17 00:00:00 2001 From: Steve Yoo Date: Tue, 12 Mar 2024 12:04:47 +0900 Subject: [PATCH 02/15] [GPU] Defer updating memory of reshape after execution if it is static-shaped and its input memory is null (#22845) ### Details: - *Added a condition to defer reshape memory update* - *If the reshape is static shaped and has null dep memory, its memory update will be deferred* ### Tickets: - *125236* --- src/plugins/intel_gpu/src/graph/network.cpp | 7 ++- src/plugins/intel_gpu/src/graph/reshape.cpp | 3 ++ .../unit/test_cases/reshape_gpu_test.cpp | 50 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/src/plugins/intel_gpu/src/graph/network.cpp b/src/plugins/intel_gpu/src/graph/network.cpp index c66ceb891a4b29..6a18faaa978c3c 100644 --- a/src/plugins/intel_gpu/src/graph/network.cpp +++ b/src/plugins/intel_gpu/src/graph/network.cpp @@ -422,8 +422,13 @@ void network::set_arguments() { // In that case some_op is static and we may want to set arguments once, // but dynamic optimized out reshape means that output buffer of reshape is unavailable // and attempt to set args will fail. + + // (dynamic) -> static optimizable reshape -> static optimizable reshape -> some_op + // In that case, it is a limit about second reshape. auto prim = dep.first->get_impl_params()->desc; - if (dep.first->can_be_optimized() && (dep.first->is_dynamic() || prim->type == read_value::type_id())) + if (dep.first->can_be_optimized() && (dep.first->is_dynamic() || + dep.first->output_memory_ptr() == nullptr || + prim->type == read_value::type_id())) can_set_args = false; } diff --git a/src/plugins/intel_gpu/src/graph/reshape.cpp b/src/plugins/intel_gpu/src/graph/reshape.cpp index bf7c9657bd21c7..ccfba9e8cb0c92 100644 --- a/src/plugins/intel_gpu/src/graph/reshape.cpp +++ b/src/plugins/intel_gpu/src/graph/reshape.cpp @@ -207,6 +207,9 @@ void reshape_inst::update_output_memory() { return; build_deps(); // reshape need deps + if (node->get_program().get_config().get_property(ov::intel_gpu::allow_new_shape_infer) && + input_memory_ptr() == nullptr) + return; OPENVINO_ASSERT(input_memory_ptr() != nullptr, "[GPU] Failed to reuse input in ", id(), " primitive: input memory was not allocated"); _outputs = {_network.get_engine().reinterpret_buffer(input_memory(), _impl_params->get_output_layout())}; } diff --git a/src/plugins/intel_gpu/tests/unit/test_cases/reshape_gpu_test.cpp b/src/plugins/intel_gpu/tests/unit/test_cases/reshape_gpu_test.cpp index eeef9ac9d17db9..fcf44a3c8695f2 100644 --- a/src/plugins/intel_gpu/tests/unit/test_cases/reshape_gpu_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/test_cases/reshape_gpu_test.cpp @@ -1043,6 +1043,56 @@ TEST(reshape_gpu_f32, basic_dynamic_shape_to_static_optimized_out) { } } +TEST(reshape_gpu_f32, basic_dynamic_shape_to_static_optimized_out_static_optimized_out) { + auto& engine = get_test_engine(); + + auto input = engine.allocate_memory(layout{ov::PartialShape{1, 2, 10}, data_types::f32, format::bfyx}); + topology topology; + topology.add(input_layout("input", layout{ov::PartialShape::dynamic(3), data_types::f32, format::bfyx})); + topology.add(reshape("reshape_1", input_info("input"), false, {1, 2, 10}, {1, 2, 10})); + topology.add(reduce("reduce_1", input_info("reshape_1"), reduce_mode::max, {1}, true)); + topology.add(reshape("reshape", input_info("reshape_1"), false, {2, 10}, {2, 10})); + topology.add(reduce("reduce", input_info("reshape"), reduce_mode::max, {1}, true)); + + // clang-format off + std::vector input_data = { + 0.0, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, + 0.0, 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, + }; + // clang-format on + + set_values(input, input_data); + + ExecutionConfig config = get_test_default_config(engine); + config.set_property(ov::intel_gpu::allow_new_shape_infer(true)); + config.set_property(ov::intel_gpu::optimize_data(true)); + network network(engine, topology, config); + network.set_input_data("input", input); + auto outputs = network.execute(); + + ASSERT_TRUE(network.get_primitive("reshape")->can_be_optimized()); + + ASSERT_EQ(outputs.size(), size_t(2)); + ASSERT_EQ(outputs.begin()->first, "reduce"); + + auto output = outputs.at("reduce").get_memory(); + + ASSERT_EQ(output->get_layout().data_type, input->get_layout().data_type); + ASSERT_EQ(output->get_layout().format, format::bfyx); + ASSERT_TRUE(output->get_layout().is_static()); + ov::PartialShape expected_shape = {2, 1}; + ASSERT_EQ(output->get_layout().get_partial_shape(), expected_shape); + + cldnn::mem_lock output_ptr(output, get_test_stream()); + std::vector expected_res = {9.f, 9.f}; + ASSERT_EQ(output_ptr.size(), expected_res.size()); + + + for (size_t i = 0; i < expected_res.size(); i++) { + ASSERT_EQ(expected_res[i], output_ptr[i]); + } +} + TEST(reshape_gpu_f32, basic_runtime_dynamic_shape_activation_fusion) { auto& engine = get_test_engine(); From 8c58b05c010587f2063aa94beb23077ba00f20b8 Mon Sep 17 00:00:00 2001 From: Andrei Kashchikhin Date: Tue, 12 Mar 2024 07:28:05 +0000 Subject: [PATCH 03/15] [CI] [GHA] Do not use `sccache` in the Coverity workflow (#23377) ### Details: - It turned out that the `sccache` tool interfered with the Coverity scans making it report 0 issues. This PR disables the caching functionality in the Coverity workflow. - It was tested using this run: https://github.com/openvinotoolkit/openvino/actions/runs/8204259038 and viewing on the Coverity platform. ### Tickets: - *134999* --- .github/workflows/coverity.yml | 65 ++++++++++++++++------------------ 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml index b140b340ea6995..9976078295a18c 100644 --- a/.github/workflows/coverity.yml +++ b/.github/workflows/coverity.yml @@ -27,22 +27,14 @@ jobs: runs-on: aks-linux-16-cores-32gb container: image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 - volumes: - - /mount/caches:/mount/caches - options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING env: DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input CMAKE_BUILD_TYPE: 'Release' CMAKE_GENERATOR: 'Ninja Multi-Config' - CMAKE_CXX_COMPILER_LAUNCHER: sccache - CMAKE_C_COMPILER_LAUNCHER: sccache - SCCACHE_IGNORE_SERVER_IO_ERROR: 1 - SCCACHE_SERVER_PORT: 35555 GITHUB_WORKSPACE: '/__w/openvino/openvino' OPENVINO_REPO: /__w/openvino/openvino/openvino OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib BUILD_DIR: /__w/openvino/openvino/openvino_build - SCCACHE_AZURE_KEY_PREFIX: coverity_ubuntu20_x86_64 COVERITY_TOOL_DIR: /__w/openvino/openvino/coverity_tool steps: @@ -76,11 +68,6 @@ jobs: # default-jdk - Java API apt install --assume-yes --no-install-recommends default-jdk - - name: Install sccache - uses: mozilla-actions/sccache-action@v0.0.4 - with: - version: "v0.7.5" - - name: Setup Python ${{ env.PYTHON_VERSION }} uses: ./openvino/.github/actions/setup_python with: @@ -99,20 +86,13 @@ jobs: -G "${{ env.CMAKE_GENERATOR }}" \ -DENABLE_CPPLINT=OFF \ -DENABLE_STRICT_DEPENDENCIES=OFF \ - -DENABLE_SYSTEM_TBB=ON \ - -DENABLE_SYSTEM_OPENCL=ON \ -DCMAKE_VERBOSE_MAKEFILE=ON \ - -DCPACK_GENERATOR=TGZ \ -DBUILD_nvidia_plugin=OFF \ + -DENABLE_FASTER_BUILD=OFF \ -DOPENVINO_EXTRA_MODULES=${OPENVINO_CONTRIB_REPO}/modules \ - -DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ - -DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ -S ${OPENVINO_REPO} \ -B ${BUILD_DIR} - - name: Clean sccache stats - run: ${SCCACHE_PATH} --zero-stats - - name: Install Coverity tool run: | rm -rf ${COVERITY_TOOL_DIR} && mkdir -p ${COVERITY_TOOL_DIR} @@ -122,12 +102,7 @@ jobs: popd - name: Cmake build - OpenVINO with Coverity - run: | - ${COVERITY_TOOL_DIR}/cov-analysis*/bin/cov-build --dir ${BUILD_DIR}/cov-int \ - cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} - - - name: Show sccache stats - run: ${SCCACHE_PATH} --show-stats + run: ${COVERITY_TOOL_DIR}/cov-analysis*/bin/cov-build --dir ${BUILD_DIR}/cov-int cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} - name: Pack Artefacts run: | @@ -137,24 +112,44 @@ jobs: - name: Submit artefacts run: | - apt-get update && apt-get install -y curl + apt-get update && apt-get install -y curl jq pushd ${BUILD_DIR} - curl --form token=${{ secrets.COVERITY_TOKEN }} \ - --form email=${{ secrets.COVERITY_USER }} \ - --form file=@openvino.tgz \ - --form version="${{ github.sha }}" \ - --form description="https://github.com/openvinotoolkit/openvino/runs/${{ github.run_number }}" \ - https://scan.coverity.com/builds?project=openvino + curl -X POST -d token=${{ secrets.COVERITY_TOKEN }} \ + -d email=${{ secrets.COVERITY_USER }} \ + -d file_name="openvino.tgz" \ + -d version="${{ github.sha }}" \ + -d description="https://github.com/openvinotoolkit/openvino/runs/${{ github.run_number }}" \ + https://scan.coverity.com/projects/21921/builds/init | tee response + + upload_url=$(jq -r '.url' response) + build_id=$(jq -r '.build_id' response) + + curl -X PUT \ + --header 'Content-Type: application/json' \ + --upload-file openvino.tgz \ + $upload_url + + curl -X PUT \ + -d token=${{ secrets.COVERITY_TOKEN }} \ + https://scan.coverity.com/projects/21921/builds/$build_id/enqueue popd - name: Show Coverity configure logs continue-on-error: true run: ${COVERITY_TOOL_DIR}/cov-analysis*/bin/cov-configure -c ${COVERITY_TOOL_DIR}/cov-analysis-linux64-2023.6.2/config/coverity_config.xml -lscc text - - name: Upload Coverity logs + - name: Upload Coverity build log uses: actions/upload-artifact@v4 if: always() with: name: coverity_logs path: ${{ env.BUILD_DIR }}/cov-int/build-log.txt if-no-files-found: 'error' + + - name: Upload Coverity build archive + uses: actions/upload-artifact@v4 + if: always() + with: + name: coverity_archive + path: ${{ env.BUILD_DIR }}/openvino.tgz + if-no-files-found: 'error' From 21bf6ab80bddc1a281ee69c78582a19a848da82d Mon Sep 17 00:00:00 2001 From: Sebastian Golebiewski Date: Tue, 12 Mar 2024 09:03:02 +0100 Subject: [PATCH 04/15] [DOCS] Add Node.js docs to API for master (#23195) Adding docs for OpenVINO Node.JS API. Porting: https://github.com/openvinotoolkit/openvino/pull/23189 --- docs/sphinx_setup/api/api_reference.rst | 5 +- docs/sphinx_setup/api/nodejs_api/addon.rst | 130 ++++++++++ .../api/nodejs_api/nodejs_api.rst | 201 +++------------- .../openvino-node/enums/element.rst | 119 +++++++++ .../openvino-node/enums/resizeAlgorithm.rst | 37 +++ .../interfaces/CompiledModel.rst | 107 +++++++++ .../openvino-node/interfaces/Core.rst | 166 +++++++++++++ .../interfaces/CoreConstructor.rst | 23 ++ .../openvino-node/interfaces/InferRequest.rst | 227 ++++++++++++++++++ .../openvino-node/interfaces/InputInfo.rst | 56 +++++ .../interfaces/InputModelInfo.rst | 32 +++ .../interfaces/InputTensorInfo.rst | 74 ++++++ .../openvino-node/interfaces/Model.rst | 110 +++++++++ .../openvino-node/interfaces/Output.rst | 107 +++++++++ .../openvino-node/interfaces/OutputInfo.rst | 28 +++ .../interfaces/OutputTensorInfo.rst | 48 ++++ .../openvino-node/interfaces/PartialShape.rst | 72 ++++++ .../interfaces/PartialShapeConstructor.rst | 31 +++ .../interfaces/PrePostProcessor.rst | 73 ++++++ .../PrePostProcessorConstructor.rst | 30 +++ .../interfaces/PreProcessSteps.rst | 32 +++ .../openvino-node/interfaces/Tensor.rst | 75 ++++++ .../interfaces/TensorConstructor.rst | 38 +++ .../openvino-node/types/Dimension.rst | 9 + .../types/SupportedTypedArray.rst | 11 + .../openvino-node/types/elementTypeString.rst | 9 + 26 files changed, 1674 insertions(+), 176 deletions(-) create mode 100644 docs/sphinx_setup/api/nodejs_api/addon.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst create mode 100644 docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst diff --git a/docs/sphinx_setup/api/api_reference.rst b/docs/sphinx_setup/api/api_reference.rst index 73dcb1ccefd2c1..aee12add0299ee 100644 --- a/docs/sphinx_setup/api/api_reference.rst +++ b/docs/sphinx_setup/api/api_reference.rst @@ -13,10 +13,11 @@ API Reference ie_python_api/api c_cpp_api/group__ov__cpp__api c_cpp_api/group__ov__c__api - nodejs_api/nodejs_api.rst + OpenVINO Node.js API -OpenVINO toolkit offers **APIs for Python, C++, C, and JavaScript (Node.js)** which share most features (C++ being the + +OpenVINO toolkit offers **APIs for Python, C, and C++** which share most features (C++ being the most comprehensive one), have a common structure, naming convention styles, namespaces, and no duplicate structures. diff --git a/docs/sphinx_setup/api/nodejs_api/addon.rst b/docs/sphinx_setup/api/nodejs_api/addon.rst new file mode 100644 index 00000000000000..a3a3b9722e1837 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/addon.rst @@ -0,0 +1,130 @@ +Property addon +=================== + +.. meta:: + :description: Explore the modules of openvino-node in Node.js API and their implementation + in Intel® Distribution of OpenVINO™ Toolkit. + +.. toctree:: + :maxdepth: 3 + :hidden: + + element <./openvino-node/enums/element> + resizeAlgorithm <./openvino-node/enums/resizeAlgorithm> + CompiledModel <./openvino-node/interfaces/CompiledModel> + Core <./openvino-node/interfaces/Core> + CoreConstructor <./openvino-node/interfaces/CoreConstructor> + InferRequest <./openvino-node/interfaces/InferRequest> + InputInfo <./openvino-node/interfaces/InputInfo> + InputModelInfo <./openvino-node/interfaces/InputModelInfo> + InputTensorInfo <./openvino-node/interfaces/InputTensorInfo> + Model <./openvino-node/interfaces/Model> + Output <./openvino-node/interfaces/Output> + OutputInfo <./openvino-node/interfaces/OutputInfo> + OutputTensorInfo <./openvino-node/interfaces/OutputTensorInfo> + PartialShape <./openvino-node/interfaces/PartialShape> + PartialShapeConstructor <./openvino-node/interfaces/PartialShapeConstructor> + PrePostProcessor <./openvino-node/interfaces/PrePostProcessor> + PrePostProcessorConstructor <./openvino-node/interfaces/PrePostProcessorConstructor> + PreProcessSteps <./openvino-node/interfaces/PreProcessSteps> + Tensor <./openvino-node/interfaces/Tensor> + TensorConstructor <./openvino-node/interfaces/TensorConstructor> + + +The **openvino-node** package exports ``addon`` which contains the following properties: + +.. code-block:: json + + interface NodeAddon { + Core: CoreConstructor; + PartialShape: PartialShapeConstructor; + Tensor: TensorConstructor; + element: typeof element; + preprocess: { + PrePostProcessor: PrePostProcessorConstructor; + resizeAlgorithm: typeof resizeAlgorithm; + }; + } + +- Defined in + `addon.ts:164 `__ + +Properties +##################### + +.. rubric:: Core + + +.. code-block:: json + + Core: CoreConstructor + +.. rubric:: Type declaration + +- CoreConstructor: :doc:`CoreConstructor <./openvino-node/interfaces/CoreConstructor>` +- Defined in + `addon.ts:165 `__ + + +.. rubric:: PartialShape + + + +.. code-block:: json + + PartialShape: PartialShapeConstructor + +.. rubric:: Type declaration + +- PartialShapeConstructor: :doc:`PartialShapeConstructor <./openvino-node/interfaces/PartialShapeConstructor>` +- Defined in + `addon.ts:167 `__ + +.. rubric:: Tensor + + +.. code-block:: json + + Tensor: TensorConstructor + +.. rubric:: Type declaration + +- TensorConstructor: :doc:`TensorConstructor <./openvino-node/interfaces/TensorConstructor>` + +- Defined in + `addon.ts:166 `__ + +.. rubric:: element + + + +.. code-block:: json + + element: typeof element + +.. rubric:: Type declaration + +- element:typeof :doc:`element <./openvino-node/enums/element>` +- Defined in + `addon.ts:173 `__ + +.. rubric:: preprocess + + + +.. code-block:: json + + preprocess: { + PrePostProcessor: PrePostProcessorConstructor; + resizeAlgorithm: typeof resizeAlgorithm; + } + + +.. rubric:: Type declaration + + +- PrePostProcessor: :doc:`PrePostProcessorConstructor <./openvino-node/interfaces/PrePostProcessorConstructor>` +- resizeAlgorithm:typeof :doc:`resizeAlgorithm <./openvino-node/enums/resizeAlgorithm>` + +- Defined in + `addon.ts:169 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/nodejs_api.rst b/docs/sphinx_setup/api/nodejs_api/nodejs_api.rst index b42a4adf748545..f71424d05294dd 100644 --- a/docs/sphinx_setup/api/nodejs_api/nodejs_api.rst +++ b/docs/sphinx_setup/api/nodejs_api/nodejs_api.rst @@ -1,193 +1,46 @@ -OpenVINO Node.js API -===================== +OpenVINO™ Node.js Bindings +========================== .. meta:: :description: Explore Node.js API and implementation of its features in Intel® Distribution of OpenVINO™ Toolkit. +.. toctree:: + :maxdepth: 3 + :hidden: -OpenVINO Node.js API is distributed as an *openvino-node* npm package that contains JavaScript -wrappers with TypeScript types descriptions and a script that downloads the OpenVINO Node.js -bindings for current OS.⠀ + addon <./addon> -Use openvino-node package -######################### +Use OpenVINO JavaScript API for your Node.js application. -1. Import openvino-node package. Use the ``addon`` property to reach general exposed entities: +Usage +##################### - .. code-block:: js +1. Install the **openvino-node** package: - const { addon: ov } = require('openvino-node'); + .. code-block:: + npm install openvino-node -2. Load and compile a model, then prepare a tensor with input data. Finally, run inference - on the model with it to get the model output tensor: +2. Use the **openvino-node** package: - .. code-block:: js + .. code-block:: const { addon: ov } = require('openvino-node'); - // Load model - const core = new ov.Core(); - const model = await ov.readModel('path/to/model', 'path/to/model/weights'); - // Compile model - const compiledModel = await ov.compileModel(model, 'CPU'); - // Prepare tensor with input data - const tensorData = new Float32Array(image.data); - const shape = [1, image.rows, image.cols, 3]; - const inputTensor = new ov.Tensor(ov.element.f32, shape, tensorData); - const inferRequest = compiledModel.createInferRequest(); - const modelOutput = inferRequest.infer([inputTensor]); - - -For more extensive examples of use, refer to the following scripts: - -- `Hello Classification Sample `__ -- `Hello Reshape SSD Sample `__ -- `Image Classification Async Sample `__ - -OpenVINO API features + + +Build From Sources ##################### -.. list-table:: - :widths: 15 85 - :class: nodejs-features - - * - ``addon`` - - - .. code-block:: ts - - Core() - Tensor() - PartialShape() - element - preprocess: - resizeAlgorithms - PrePostProcessor() - - * - ``CompiledModel`` - - - .. code-block:: ts - - outputs: Output[] - inputs: Output[] - constructor() - output(nameOrId?: string | number): Output - input(nameOrId?: string | number): Output - createInferRequest(): InferRequest - - * - ``Core`` - - - .. code-block:: ts - - constructor() - compileModel(model: Model, device: string, config?: { [option: string]: string }): Promise - compileModelSync(model: Model, device: string, config?: { [option: string]: string }): CompiledModel - readModel(modelPath: string, binPath?: string): Promise - readModel(modelBuffer: Uint8Array, weightsBuffer?: Uint8Array): Promise; - readModelSync(modelPath: string, binPath?: string): Model - readModelSync(modelBuffer: Uint8Array, weightsBuffer?: Uint8Array): Model; - - * - ``InferRequest`` - - - .. code-block:: ts - - constructor() - setTensor(name: string, tensor: Tensor): void - setInputTensor(idxOrTensor: number | Tensor, tensor?: Tensor): void - setOutputTensor(idxOrTensor: number | Tensor, tensor?: Tensor): void - getTensor(nameOrOutput: string | Output): Tensor - getInputTensor(idx?: number): Tensor - getOutputTensor(idx?: number): Tensor - getCompiledModel(): CompiledModel - inferAsync(inputData?: { [inputName: string]: Tensor |SupportedTypedArray} | Tensor[] | SupportedTypedArray[]): Promise<{ [outputName: string] : Tensor}>; - infer(inputData?: { [inputName: string]: Tensor |SupportedTypedArray} | Tensor[] | SupportedTypedArray[]): { [outputName: string] : Tensor}; - - * - ``InputInfo`` - - - .. code-block:: ts - - tensor(): InputTensorInfo; - preprocess(): PreProcessSteps; - model(): InputModelInfo; - - * - ``InputModelInfo`` - - - .. code-block:: ts - - setLayout(layout: string): InputModelInfo; - - * - ``InputTensorInfo`` - - - .. code-block:: ts - - setElementType(elementType: element | elementTypeString ): InputTensorInfo; - setLayout(layout: string): InputTensorInfo; - setShape(shape: number[]): InputTensorInfo; - - * - ``Model`` - - - .. code-block:: ts - - outputs: Output[] - inputs: Output[] - output(nameOrId?: string | number): Output - input(nameOrId?: string | number): Output - getName(): string - - * - ``Output`` - - - .. code-block:: ts - - anyName: string; - shape: number[]; - - constructor() - toString(): string - getAnyName(): string - getShape(): number[] - getPartialShape(): number[] - - * - ``OutputInfo`` - - - .. code-block:: ts - - tensor(): OutputTensorInfo; - - * - ``OutputTensorInfo`` - - - .. code-block:: ts - - setElementType(elementType: element | elementTypeString ): InputTensorInfo; - setLayout(layout: string): InputTensorInfo; - - * - ``PrePostProcessor`` - - - .. code-block:: ts - - constructor(model: Model) - build(): PrePostProcessor - input(): InputInfo - output(): OutputInfo - - * - ``preprocess.element`` - - u8, u16, u32, i8, i16, i32, i64, f32, f64 - - * - ``preprocess.resizeAlgorithm`` - - RESIZE_CUBIC, RESIZE_LINEAR - - * - ``PreProcessSteps`` - - - .. code-block:: ts - - resize(algorithm: resizeAlgorithm | string): PreProcessSteps; - - * - ``Tensor`` - - - .. code-block:: ts +For more details, refer to the +`OpenVINO™ JavaScript API Developer Documentation +`__ + - data: number[] - constructor(type: element, shape: number[], tensorData?: number[] | SupportedTypedArray): Tensor - getElementType(): element - getShape(): number[] - getData(): number[] +Additional Resources +##################### +- `OpenVINO™ Node.js Bindings Examples of Usage `__ +- `OpenVINO™ Core Components `__ +- `OpenVINO™ Python API `__ +- `OpenVINO™ Other Bindings `__ \ No newline at end of file diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst new file mode 100644 index 00000000000000..15ba79369280b3 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst @@ -0,0 +1,119 @@ +Enumeration element +=================== + +.. rubric:: f32 + + + +.. code-block:: json + + f32: number + +- Defined in + `addon.ts:154 `__ + + +.. rubric:: f64 + + +.. code-block:: json + + f64: number + +- Defined in + `addon.ts:155 `__ + + +.. rubric:: i16 + + +.. code-block:: json + + i16: number + +- Defined in + `addon.ts:151 `__ + + +.. rubric:: i32 + + + +.. code-block:: json + + i32: number + +- Defined in + `addon.ts:152 `__ + + +.. rubric:: i64 + + + +.. code-block:: json + + i64: number + +- Defined in + `addon.ts:153 `__ + + +.. rubric:: i8 + + + +.. code-block:: json + + i8: number + +- Defined in + `addon.ts:150 `__ + + +.. rubric:: u16 + + + +.. code-block:: json + + u16: number + +- Defined in + `addon.ts:148 `__ + + +.. rubric:: u32 + + + +.. code-block:: json + + u32: number + +- Defined in + `addon.ts:147 `__ + + +.. rubric:: u64 + + + +.. code-block:: json + + u64: number + +- Defined in + `addon.ts:149 `__ + + +.. rubric:: u8 + + + +.. code-block:: json + + u8: number + +- Defined in + `addon.ts:146 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst new file mode 100644 index 00000000000000..340e5afe81668b --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst @@ -0,0 +1,37 @@ +Enumeration resizeAlgorithm +=========================== + +.. rubric:: RESIZE_CUBIC + + + +.. code-block:: json + + RESIZE_CUBIC: number + +- Defined in + `addon.ts:160 `__ + + +.. rubric:: RESIZE_LINEAR + + + +.. code-block:: json + + RESIZE_LINEAR: number + +- Defined in + `addon.ts:161 `__ + + +.. rubric:: RESIZE_NEAREST + + + +.. code-block:: json + + RESIZE_NEAREST: number + +- Defined in + `addon.ts:159 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst new file mode 100644 index 00000000000000..4156012a67c1df --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst @@ -0,0 +1,107 @@ +Interface CompiledModel +======================= + +.. code-block:: json + + interface CompiledModel { +     inputs: Output[]; +     outputs: Output[]; +     createInferRequest(): InferRequest; +     input(nameOrId?): Output; +     output(nameOrId?): Output; + } + +- Defined in + `addon.ts:52 `__ + + +Properties +##################### + +.. rubric:: inputs + + + +.. code-block:: json + + inputs: Output [] + +- Defined in + `addon.ts:54 `__ + + + +.. rubric:: outputs + + + +.. code-block:: json + + outputs: Output [] + +- Defined in + `addon.ts:53 `__ + + + +Methods +##################### + +.. rubric:: createInferRequest + + +.. code-block:: json + + createInferRequest(): InferRequest + +**Returns** :doc:`InferRequest ` + +- Defined in + `addon.ts:57 `__ + + + +.. rubric:: input + + + +.. code-block:: json + + input(nameOrId?): Output + + +**Parameters** + +- ``Optional`` + + .. code-block:: json + + nameOrId: string|number + +**Returns** :doc:`InferRequest ` + +- Defined in + `addon.ts:56 `__ + + + +.. rubric:: output + + +.. code-block:: json + + output(nameOrId?): Output + +- ``Optional`` + + .. code-block:: json + + nameOrId: string|number + +**Returns** :doc:`Output ` + + + +- Defined in + `addon.ts:55 `__ + diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst new file mode 100644 index 00000000000000..152d88d0ba6274 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst @@ -0,0 +1,166 @@ +Interface Core +============== + +.. code-block:: json + + interface Core { +     compileModel(model, device, config?): Promise; +     compileModelSync(model, device, config?): CompiledModel; +     readModel(modelPath, weightsPath?): Promise; +     readModel(modelBuffer, weightsBuffer?): Promise; +     readModelSync(modelPath, weightsPath?): Model; +     readModelSync(modelBuffer, weightsBuffer?): Model; + }} + +- Defined in + `addon.ts:23 `__ + + +Methods +##################### + + +.. rubric:: compileModel + + +.. code-block:: json + + compileModel(model, device, config?): Promise + + +**Parameters** + + +- model: :doc:`Model ` +- device: string +- ``Optional`` + + .. code-block:: json + + config: { +     [option: string]: string; + } + + +- [option: string]:string + + +**Returns** Promise<\ :doc:`CompiledModel ` \> + +- Defined in + `addon.ts:24 `__ + + +.. rubric:: compileModelSync + + +.. code-block:: json + + compileModelSync(model, device, config?): CompiledModel + + +**Parameters** + +- model: :doc:`Model ` +- device: string +- ``Optional`` + + .. code-block:: json + + config: { +     [option: string]: string; + } + +- [option: string]:string + + +**Returns** :doc:`CompiledModel ` + + +- Defined in + `addon.ts:29 `__ + + +.. rubric:: readModel + + +.. code-block:: json + + readModel(modelPath, weightsPath?): Promise + + +**Parameters** + + - modelPath: string + - ``Optional`` + + .. code-block:: json + + weightsPath: string + + +**Returns** Promise<\ :doc:`Model `\ > + +- Defined in + `addon.ts:34 `__ + +.. code-block:: json + + readModel(modelBuffer, weightsBuffer?): Promise + +**Parameters** + +- modelBuffer: Uint8Array +- ``Optional`` + + .. code-block:: json + + weightsBuffer: Uint8Array + + +**Returns** Promise<\ :doc:`Model `\ > + + +- Defined in + `addon.ts:35 `__ + +.. rubric:: readModelSync + + +.. code-block:: json + + readModelSync(modelPath, weightsPath?): Model + + +**Parameters** + +- modelPath: string +- ``Optional`` + + .. code-block:: json + + weightsPath: string + +**Returns** :doc:`Model ` + +- Defined in + `addon.ts:37 `__ + +.. code-block:: json + + readModelSync(modelBuffer, weightsBuffer?): Model + + +**Parameters** + +- modelBuffer: Uint8Array +- ``Optional`` + + .. code-block:: json + + weightsBuffer: Uint8Array + +**Returns** :doc:`Model ` + +- Defined in + `addon.ts:38 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst new file mode 100644 index 00000000000000..4f8051a17e022c --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst @@ -0,0 +1,23 @@ +Interface CoreConstructor +========================= + +.. code-block:: json + + interface CoreConstructor { + new Core(): Core; + } + +- Defined in + `addon.ts:40 `__ + +.. rubric:: constructor + +.. code-block:: json + + new Core(): Core + +**Returns** :doc:`Core ` + +- Defined in + `addon.ts:41 `__ + diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst new file mode 100644 index 00000000000000..1468c47d24dc85 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst @@ -0,0 +1,227 @@ +InferRequest +============ + +.. rubric:: Interface InferRequest + + +.. code-block:: json + + interface InferRequest { + getCompiledModel(): CompiledModel; + getInputTensor(idx?): Tensor; + getOutputTensor(idx?): Tensor; + getTensor(nameOrOutput): Tensor; + infer(inputData?): { + [outputName: string]: Tensor; + }; + inferAsync(inputData): Promise<{ + [outputName: string]: Tensor; + }>; + setInputTensor(idxOrTensor, tensor?): void; + setOutputTensor(idxOrTensor, tensor?): void; + setTensor(name, tensor): void; + } + +- Defined in + `addon.ts:72 `__ + +Methods +##################### + + +.. rubric:: getCompiledModel + +.. code-block:: json + + getCompiledModel(): CompiledModel + +**Returns** :doc:`CompiledModel ` + +- Defined in + `addon.ts:83 `__ + + +.. rubric:: getInputTensor + +.. code-block:: json + + getInputTensor(idx?): Tensor + + +**Parameters** + +- ``Optional`` + + .. code-block:: json + + idx: number + + +**Returns** :doc:`Tensor ` + +- Defined in + `addon.ts:77 `__ + +.. rubric:: getOutputTensor + +.. code-block:: json + + getOutputTensor(idx?): Tensor + + +**Parameters** + +- ``Optional`` + + .. code-block:: json + + idx: number + +**Returns** :doc:`Tensor ` + + +- Defined in + `addon.ts:78 `__ + +.. rubric:: getTensor + +.. code-block:: json + + getTensor(nameOrOutput): Tensor + +**Parameters** + +- nameOrOutput: string| :doc:`Output ` + +**Returns** :doc:`Tensor ` + +- Defined in + `addon.ts:76 `__ + +.. rubric:: infer + + +.. code-block:: json + + infer(inputData?): { + [outputName: string]: Tensor; + } + + +**Parameters** + +- ``Optional`` + + .. code-block:: json + + inputData: { + [inputName: string]: Tensor | SupportedTypedArray; + } | Tensor[] | SupportedTypedArray[] + +**Returns** + +.. code-block:: json + + { + [outputName: string]: Tensor; + } + +- [outputName: string]: Tensor + + +- Defined in + `addon.ts:79 `__ + +.. rubric:: inferAsync + + +.. code-block:: json + + inferAsync(inputData): Promise<{ + [outputName: string]: Tensor; + }> + +**Parameters** + +- + + .. code-block:: json + + inputData: Tensor[] | { + [inputName: string]: Tensor; + } + +**Returns** + +.. code-block:: json + + Promise<{ + [outputName: string]: Tensor; + }> + + +- Defined in + `addon.ts:81 `__ + +.. rubric:: setInputTensor + +.. code-block:: json + + setInputTensor(idxOrTensor, tensor?): void + + +**Parameters** + +- idxOrTensor: number| :doc:`Tensor ` + +- ``Optional`` + + .. code-block:: json + + tensor: Tensor + + +**Returns** void + +- Defined in + `addon.ts:74 `__ + +.. rubric:: setOutputTensor + + +.. code-block:: json + + setOutputTensor(idxOrTensor, tensor?): void + + +**Parameters** + +- idxOrTensor: number| :doc:`Tensor ` +- ``Optional`` + + .. code-block:: json + + tensor: Tensor + + +**Returns** void + +- Defined in + `addon.ts:75 `__ + +.. rubric:: setTensor + + +.. code-block:: json + + setTensor(name, tensor): void + +**Parameters** + +- name: string +- tensor: :doc:`Tensor ` + +**Returns** void + +- Defined in + `addon.ts:73 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst new file mode 100644 index 00000000000000..0262d3b17efc77 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst @@ -0,0 +1,56 @@ +Interface InputInfo +=================== + +.. code-block:: json + + interface InputInfo { + model(): InputModelInfo; + preprocess(): PreProcessSteps; + tensor(): InputTensorInfo; + } + +- Defined in + `addon.ts:116 `__ + +Methods +##################### + +.. rubric:: model + + + +.. code-block:: json + + model(): InputModelInfo + +**Returns** :doc:`InputModelInfo ` + +- Defined in + `addon.ts:119 `__ + + +.. rubric:: preprocess + + +.. code-block:: json + + preprocess(): PreProcessSteps + +**Returns** :doc:`PreProcessSteps ` + +- Defined in + `addon.ts:118 `__ + + +.. rubric:: tensor + + +.. code-block:: json + + tensor(): InputTensorInfo + + +**Returns** :doc:`InputTensorInfo ` + +- Defined in + `addon.ts:117 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst new file mode 100644 index 00000000000000..2a17dcc7840bf9 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst @@ -0,0 +1,32 @@ +Interface InputModelInfo +======================== + + +.. code-block:: json + + interface InputModelInfo { + setLayout(layout): InputModelInfo; + } + +- Defined in + `addon.ts:112 `__ + +Methods +##################### + +.. rubric:: setLayout + + + +.. code-block:: json + + setLayout(layout): InputModelInfo + +**Parameters** + +- layout: string + +**Returns** :doc:`InputModelInfo ` + +- Defined in + `addon.ts:113 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst new file mode 100644 index 00000000000000..4d3d8e0c0be29b --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst @@ -0,0 +1,74 @@ +Interface InputTensorInfo +========================= + + +.. code-block:: json + + interface InputTensorInfo { + setElementType(elementType): InputTensorInfo; + setLayout(layout): InputTensorInfo; + setShape(shape): InputTensorInfo; + } + +- Defined in + `addon.ts:98 `__ + +Methods +##################### + +.. rubric:: setElementType + + + +.. code-block:: json + + setElementType(elementType): InputTensorInfo + +**Parameters** + + +- elementType: :doc:`elementTypeString <../types/elementTypeString>` | :doc:`element <../enums/element>` + +**Returns** :doc:`InputTensorInfo ` + + + +- Defined in + `addon.ts:99 `__ + + + +.. rubric:: setLayout + + + +.. code-block:: json + + setLayout(layout): InputTensorInfo + +**Parameters** + +- layout: string + + +**Returns** :doc:`InputTensorInfo ` + +- Defined in + `addon.ts:100 `__ + +.. rubric:: setShape + + +.. code-block:: json + + setShape(shape): InputTensorInfo + + +**Parameters** + +- shape: number[] + +**Returns** :doc:`InputTensorInfo ` + +- Defined in + `addon.ts:101 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst new file mode 100644 index 00000000000000..c7e96a6b4cc2af --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst @@ -0,0 +1,110 @@ +Interface Model +=============== + +.. rubric:: Interface Model + + +.. code-block:: json + + interface Model { + inputs: Output[]; + outputs: Output[]; + getName(): string; + input(nameOrId?): Output; + output(nameOrId?): Output; + } + +- Defined in + `addon.ts:44 `__ + + +Properties +##################### + + +.. rubric:: inputs + + + +.. code-block:: json + + inputs: Output[] + +- Defined in + `addon.ts:46 `__ + +.. rubric:: outputs + + + +.. code-block:: json + + outputs: Output[] + +- Defined in + `addon.ts:45 `__ + + +Methods +##################### + + +.. rubric:: getName + + +.. code-block:: json + + getName(): string + + +**Returns** string + +- Defined in + `addon.ts:49 `__ + + +.. rubric:: input + + +.. code-block:: json + + input(nameOrId?): Output + + +**Parameters** + + +- ``Optional`` + + .. code-block:: json + + nameOrId: string|number + + +**Returns** :doc:`Output ` + + +- Defined in + `addon.ts:48 `__ + + +.. rubric:: output + + +.. code-block:: json + + output(nameOrId?): Output + + +**Parameters** + +- ``Optional`` + + .. code-block:: json + + nameOrId: string|number + +**Returns** :doc:`Output ` + +- Defined in + `addon.ts:47 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst new file mode 100644 index 00000000000000..6f7f59ef3b3367 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst @@ -0,0 +1,107 @@ +Interface Output +================ + + +.. code-block:: json + + interface Output { + anyName: string; + shape: number[]; + getAnyName(): string; + getPartialShape(): PartialShape; + getShape(): number[]; + toString(): string; + } + +- Defined in + `addon.ts:89 `__ + +Properties +##################### + +.. rubric:: anyName + + + +.. code-block:: json + + anyName: string + +- Defined in + `addon.ts:90 `__ + + + +.. rubric:: shape + + + +.. code-block:: json + + shape: number[] + +- Defined in + `addon.ts:91 `__ + + + +Methods +##################### + +.. rubric:: getAnyName + + +.. code-block:: json + + getAnyName(): string + + +**Returns** string + +- Defined in + `addon.ts:93 `__ + +.. rubric:: getPartialShape + + +.. code-block:: json + + getPartialShape(): PartialShape + + +**Returns** :doc:`PartialShape ` + +- Defined in + `addon.ts:95 `__ + +.. rubric:: getShape + + +.. code-block:: json + + getShape(): number[] + +**Returns** + +.. code-block:: json + + number[] + +- Defined in + `addon.ts:94 `__ + +.. rubric:: toString + + +.. code-block:: json + + toString(): string + +**Returns** + +.. code-block:: json + + string + +- Defined in + `addon.ts:92 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst new file mode 100644 index 00000000000000..90f5780942b2cc --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst @@ -0,0 +1,28 @@ +Interface OutputInfo +==================== + +.. code-block:: json + + interfaceOutputInfo { +     tensor(): OutputTensorInfo; + } + +- Defined in + `addon.ts:122 `__ + + +Methods +##################### + + +.. rubric:: tensor + + +.. code-block:: json + + tensor(): OutputTensorInfo + +**Returns** :doc:`OutputTensorInfo ` + +- Defined in + `addon.ts:123 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst new file mode 100644 index 00000000000000..d1187a0aec068f --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst @@ -0,0 +1,48 @@ +Interface OutputTensorInfo +========================== + +.. code-block:: json + + interface OutputTensorInfo { + setElementType(elementType): InputTensorInfo; + setLayout(layout): InputTensorInfo; + } + +- Defined in + `addon.ts:104 `__ + +Methods +##################### + +.. rubric:: setElementType + + +.. code-block:: json + + setElementType(elementType): InputTensorInfo + +**Parameters** + +- elementType: elementTypeString | element + +**Returns** :doc:`InputTensorInfo ` + +- Defined in + `addon.ts:105 `__ + +.. rubric:: setLayout + + +.. code-block:: json + + setLayout(layout): InputTensorInfo + + +**Parameters** + +- layout: string + +**Returns** :doc:`InputTensorInfo ` + +- Defined in + `addon.ts:106 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst new file mode 100644 index 00000000000000..39446bb3438dff --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst @@ -0,0 +1,72 @@ +Interface PartialShape +====================== + +.. code-block:: json + + interface PartialShape { + getDimensions(): Dimension[]; + isDynamic(): boolean; + isStatic(): boolean; + toString(): string; + } + +- Defined in + `addon.ts:135 `__ + +Methods +##################### + +.. rubric:: getDimensions + + +.. code-block:: json + + getDimensions(): Dimension + + +**Returns** :doc:`Dimension <../types/Dimension>` [] + +- Defined in + `addon.ts:139 `__ + +.. rubric:: isDynamic + + +.. code-block:: json + + isDynamic(): boolean + + +**Returns** boolean + +- Defined in + `addon.ts:137 `__ + +.. rubric:: isStatic + + + +.. code-block:: json + + isStatic(): boolean + + +**Returns** boolean + + +- Defined in + `addon.ts:136 `__ + +.. rubric:: toString + + +.. code-block:: json + + toString(): string + + +**Returns** string + +- Defined in + `addon.ts:138 `__ + diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst new file mode 100644 index 00000000000000..2b1645dc8571bd --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst @@ -0,0 +1,31 @@ +Interface PartialShapeConstructor +================================= + +.. code-block:: json + + interface PartialShapeConstructor { + new PartialShape(shape): PartialShape; + } + +- Defined in + `addon.ts:141 `__ + + +.. rubric:: constructor + + + +.. code-block:: json + + new PartialShape(shape): PartialShape + + +**Parameters** + +- shape: string + +**Returns** :doc:`PartialShape ` + +- Defined in + `addon.ts:142 `__ + diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst new file mode 100644 index 00000000000000..cb1a8f49ae9e3c --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst @@ -0,0 +1,73 @@ +Interface PrePostProcessor +========================== + +.. code-block:: json + + interface PrePostProcessor { + build(): PrePostProcessor; + input(idxOrTensorName?): InputInfo; + output(idxOrTensorName?): OutputInfo; + } + +- Defined in + `addon.ts:126 `__ + +Methods +##################### + +.. rubric:: build + + +.. code-block:: json + + build(): PrePostProcessor + +**Returns** :doc: `PrePostProcessor ` + +- Defined in + `addon.ts:127 `__ + +.. rubric:: input + + + +.. code-block:: json + + input(idxOrTensorName?): InputInfo + +**Parameters** + + +- ``Optional`` + +.. code-block:: json + + idxOrTensorName: string|number + + +**Returns** :doc:`InputInfo ` + +- Defined in + `addon.ts:128 `__ + +.. rubric:: output + + +.. code-block:: json + + output(idxOrTensorName?): OutputInfo + + +**Parameters** + +- ``Optional`` + + .. code-block:: json + + idxOrTensorName: string|number + + +**Returns** :doc:`OutputInfo ` + +- Defined in + `addon.ts:129 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst new file mode 100644 index 00000000000000..3d7ea4424df5c3 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst @@ -0,0 +1,30 @@ +Interface PrePostProcessorConstructor +===================================== + + +.. code-block:: json + + interface PrePostProcessorConstructor { + new PrePostProcessor(model): PrePostProcessor; + } + +- Defined in + `addon.ts:131 `__ + +.. rubric:: constructor + + +.. code-block:: json + + new PrePostProcessor(model): PrePostProcessor + +**Parameters** + +- model: :doc:`Model ` + + +**Returns** :doc:`PrePostProcessor ` + +- Defined in + `addon.ts:132 `__ + diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst new file mode 100644 index 00000000000000..c519210ea657c4 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst @@ -0,0 +1,32 @@ +Interface PreProcessSteps +========================= + + +.. code-block:: json + + interface PreProcessSteps { + resize(algorithm): PreProcessSteps; + } + +- Defined in + `addon.ts:108 `__ + +Methods +##################### + +.. rubric:: resize + + +.. code-block:: json + + resize(algorithm): PreProcessSteps + +**Parameters** + + +- algorithm: string| :doc:`resizeAlgorithm <../enums/resizeAlgorithm>` + +**Returns** :doc:`PreProcessSteps ` + +- Defined in + `addon.ts:109 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst new file mode 100644 index 00000000000000..ea04031e8cc30c --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst @@ -0,0 +1,75 @@ +Interface Tensor +===================== + +.. rubric:: Interface Tensor + + +.. code-block:: json + + interface Tensor { + data: number[]; + getData(): number[]; + getElementType(): element; + getShape(): number[]; + } + +- Defined in + `addon.ts:60 `__ + +Properties +##################### + +.. rubric:: data + + + +.. code-block:: json + + data: number[] + +- Defined in + `addon.ts:61 `__ + + + +Methods +##################### + +.. rubric:: getData + + +.. code-block:: json + + getData(): number[] + + +**Returns** number[] + + +- Defined in + `addon.ts:64 `__ + +.. rubric:: getElementType + + +.. code-block:: json + + getElementType(): element + + +**Returns** :doc:`element <../enums/element>` + +- Defined in + `addon.ts:62 `__ + +.. rubric:: getShape + +.. code-block:: json + + getShape(): number[] + + +**Returns** number[] + +- Defined in + `addon.ts:63 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst new file mode 100644 index 00000000000000..5bf387b3bdf7bf --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst @@ -0,0 +1,38 @@ +Interface TensorConstructor +=========================== + +.. rubric:: Interface TensorConstructor + + +.. code-block:: json + + interface TensorConstructor { + new Tensor(type, shape, tensorData?): Tensor; + } + +- Defined in + `addon.ts:66 `__ + +.. rubric:: constructor + + + +.. code-block:: json + + new Tensor(type, shape, tensorData?): Tensor + +**Parameters** + +- type: :doc:`elementTypeString <../types/elementTypeString>` | :doc:`element <../enums/element>` +- shape: number[] +- ``Optional`` + + .. code-block:: json + + tensorData: number[]|SupportedTypedArray + + +**Returns** :doc:`Tensor ` + +- Defined in + `addon.ts:67 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst new file mode 100644 index 00000000000000..19fefc2922b265 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst @@ -0,0 +1,9 @@ +Type alias Dimension +==================== + +.. code-block:: json + + Dimension: number|[number,number] + +- Defined in + `addon.ts:87 `__ diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst new file mode 100644 index 00000000000000..e097f90f83ad88 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst @@ -0,0 +1,11 @@ +Type alias SupportedTypedArray +============================== + + +.. code-block:: json + + SupportedTypedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array + +- Defined in + `addon.ts:1 `__ + diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst new file mode 100644 index 00000000000000..e83e9a183b41e8 --- /dev/null +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst @@ -0,0 +1,9 @@ +Type alias elementTypeString +============================ + +.. code-block:: json + + elementTypeString: "u8" | "u32" | "u16" | "u64" | "i8" | "i64" | "i32" | "i16" | "f64" | "f32" + +- Defined in + `addon.ts:11 `__ From 9427196bcf7ce5657731f378910068fd8f9c57b1 Mon Sep 17 00:00:00 2001 From: Karol Blaszczak Date: Tue, 12 Mar 2024 11:13:44 +0100 Subject: [PATCH 05/15] [DOCS] port selector tool to master (#23399) port: https://github.com/openvinotoolkit/openvino/pull/23246 https://github.com/openvinotoolkit/openvino/pull/23260 --------- Co-authored-by: Alexander Suvorov --- .../get-started/install-openvino.rst | 2 +- .../selector-tool/assets/selector-20fd1edb.js | 60 ------------------ .../selector-tool/assets/selector-327a166e.js | 61 +++++++++++++++++++ ...tor-c365ac1e.css => selector-6bf35a6f.css} | 2 +- ...tor-6ad56e0.html => selector-c398038.html} | 7 ++- 5 files changed, 67 insertions(+), 65 deletions(-) delete mode 100644 docs/sphinx_setup/_static/selector-tool/assets/selector-20fd1edb.js create mode 100644 docs/sphinx_setup/_static/selector-tool/assets/selector-327a166e.js rename docs/sphinx_setup/_static/selector-tool/assets/{selector-c365ac1e.css => selector-6bf35a6f.css} (99%) rename docs/sphinx_setup/_static/selector-tool/{selector-6ad56e0.html => selector-c398038.html} (67%) diff --git a/docs/articles_en/get-started/install-openvino.rst b/docs/articles_en/get-started/install-openvino.rst index 0cb03ac1cf2bae..ed2e21e12326e3 100644 --- a/docs/articles_en/get-started/install-openvino.rst +++ b/docs/articles_en/get-started/install-openvino.rst @@ -22,7 +22,7 @@ Install OpenVINO™ 2024.0 - + .. warning:: diff --git a/docs/sphinx_setup/_static/selector-tool/assets/selector-20fd1edb.js b/docs/sphinx_setup/_static/selector-tool/assets/selector-20fd1edb.js deleted file mode 100644 index a1e506e42a038c..00000000000000 --- a/docs/sphinx_setup/_static/selector-tool/assets/selector-20fd1edb.js +++ /dev/null @@ -1,60 +0,0 @@ -var df=Object.defineProperty;var pf=(e,t,n)=>t in e?df(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ee=(e,t,n)=>(pf(e,typeof t!="symbol"?t+"":t,n),n);function kc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wc={exports:{}},ki={},Sc={exports:{}},j={};/** - * @license React - * react.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Xr=Symbol.for("react.element"),ff=Symbol.for("react.portal"),hf=Symbol.for("react.fragment"),mf=Symbol.for("react.strict_mode"),gf=Symbol.for("react.profiler"),vf=Symbol.for("react.provider"),yf=Symbol.for("react.context"),_f=Symbol.for("react.forward_ref"),kf=Symbol.for("react.suspense"),wf=Symbol.for("react.memo"),Sf=Symbol.for("react.lazy"),Ia=Symbol.iterator;function Of(e){return e===null||typeof e!="object"?null:(e=Ia&&e[Ia]||e["@@iterator"],typeof e=="function"?e:null)}var Oc={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Nc=Object.assign,xc={};function ar(e,t,n){this.props=e,this.context=t,this.refs=xc,this.updater=n||Oc}ar.prototype.isReactComponent={};ar.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ar.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Ec(){}Ec.prototype=ar.prototype;function Nl(e,t,n){this.props=e,this.context=t,this.refs=xc,this.updater=n||Oc}var xl=Nl.prototype=new Ec;xl.constructor=Nl;Nc(xl,ar.prototype);xl.isPureReactComponent=!0;var ba=Array.isArray,Cc=Object.prototype.hasOwnProperty,El={current:null},Pc={key:!0,ref:!0,__self:!0,__source:!0};function Rc(e,t,n){var r,o={},i=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(i=""+t.key),t)Cc.call(t,r)&&!Pc.hasOwnProperty(r)&&(o[r]=t[r]);var l=arguments.length-2;if(l===1)o.children=n;else if(1{const e={type:"size",height:document.body.offsetHeight};window.parent.postMessage(e)};new ResizeObserver(Df).observe(document.body);function pe(e){"@babel/helpers - typeof";return pe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pe(e)}function dt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ff(e,t){if(pe(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(pe(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Lc(e){var t=Ff(e,"string");return pe(t)==="symbol"?t:String(t)}function Da(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:{};dt(this,e),this.init(t,n)}return pt(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=n||Af,this.options=r,this.debug=r.debug}},{key:"setDebug",value:function(n){this.debug=n}},{key:"log",value:function(){for(var n=arguments.length,r=new Array(n),o=0;o1?r-1:0),i=1;i-1?l.replace(/###/g,"."):l}function o(){return!e||typeof e=="string"}for(var i=typeof t!="string"?[].concat(t):t.split(".");i.length>1;){if(o())return{};var s=r(i.shift());!e[s]&&n&&(e[s]=new n),Object.prototype.hasOwnProperty.call(e,s)?e=e[s]:e={}}return o()?{}:{obj:e,k:r(i.shift())}}function Ma(e,t,n){var r=Rl(e,t,Object),o=r.obj,i=r.k;o[i]=n}function $f(e,t,n,r){var o=Rl(e,t,Object),i=o.obj,s=o.k;i[s]=i[s]||[],r&&(i[s]=i[s].concat(n)),r||i[s].push(n)}function Yo(e,t){var n=Rl(e,t),r=n.obj,o=n.k;if(r)return r[o]}function za(e,t,n){var r=Yo(e,n);return r!==void 0?r:Yo(t,n)}function Dc(e,t,n){for(var r in t)r!=="__proto__"&&r!=="constructor"&&(r in e?typeof e[r]=="string"||e[r]instanceof String||typeof t[r]=="string"||t[r]instanceof String?n&&(e[r]=t[r]):Dc(e[r],t[r],n):e[r]=t[r]);return e}function bn(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var Bf={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};function Kf(e){return typeof e=="string"?e.replace(/[&<>"'\/]/g,function(t){return Bf[t]}):e}var Si=typeof window<"u"&&window.navigator&&typeof window.navigator.userAgentData>"u"&&window.navigator.userAgent&&window.navigator.userAgent.indexOf("MSIE")>-1,Hf=[" ",",","?","!",";"];function Wf(e,t,n){t=t||"",n=n||"";var r=Hf.filter(function(l){return t.indexOf(l)<0&&n.indexOf(l)<0});if(r.length===0)return!0;var o=new RegExp("(".concat(r.map(function(l){return l==="?"?"\\?":l}).join("|"),")")),i=!o.test(e);if(!i){var s=e.indexOf(n);s>0&&!o.test(e.substring(0,s))&&(i=!0)}return i}function $a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function so(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Fc(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(e){if(e[t])return e[t];for(var r=t.split(n),o=e,i=0;ii+s;)s++,l=r.slice(i,i+s).join(n),a=o[l];if(a===void 0)return;if(a===null)return null;if(t.endsWith(l)){if(typeof a=="string")return a;if(l&&typeof a[l]=="string")return a[l]}var u=r.slice(i+s).join(n);return u?Fc(a,u,n):void 0}o=o[r[i]]}return o}}var Qf=function(e){wi(n,e);var t=Yf(n);function n(r){var o,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};return dt(this,n),o=t.call(this),Si&&ln.call(Xt(o)),o.data=r||{},o.options=i,o.options.keySeparator===void 0&&(o.options.keySeparator="."),o.options.ignoreJSONStructure===void 0&&(o.options.ignoreJSONStructure=!0),o}return pt(n,[{key:"addNamespaces",value:function(o){this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}},{key:"removeNamespaces",value:function(o){var i=this.options.ns.indexOf(o);i>-1&&this.options.ns.splice(i,1)}},{key:"getResource",value:function(o,i,s){var l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=l.keySeparator!==void 0?l.keySeparator:this.options.keySeparator,u=l.ignoreJSONStructure!==void 0?l.ignoreJSONStructure:this.options.ignoreJSONStructure,f=[o,i];s&&typeof s!="string"&&(f=f.concat(s)),s&&typeof s=="string"&&(f=f.concat(a?s.split(a):s)),o.indexOf(".")>-1&&(f=o.split("."));var d=Yo(this.data,f);return d||!u||typeof s!="string"?d:Fc(this.data&&this.data[o]&&this.data[o][i],s,a)}},{key:"addResource",value:function(o,i,s,l){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1},u=this.options.keySeparator;u===void 0&&(u=".");var f=[o,i];s&&(f=f.concat(u?s.split(u):s)),o.indexOf(".")>-1&&(f=o.split("."),l=i,i=f[1]),this.addNamespaces(i),Ma(this.data,f,l),a.silent||this.emit("added",o,i,s,l)}},{key:"addResources",value:function(o,i,s){var l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(var a in s)(typeof s[a]=="string"||Object.prototype.toString.apply(s[a])==="[object Array]")&&this.addResource(o,i,a,s[a],{silent:!0});l.silent||this.emit("added",o,i,s)}},{key:"addResourceBundle",value:function(o,i,s,l,a){var u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},f=[o,i];o.indexOf(".")>-1&&(f=o.split("."),l=s,s=i,i=f[1]),this.addNamespaces(i);var d=Yo(this.data,f)||{};l?Dc(d,s,a):d=so(so({},d),s),Ma(this.data,f,d),u.silent||this.emit("added",o,i,s)}},{key:"removeResourceBundle",value:function(o,i){this.hasResourceBundle(o,i)&&delete this.data[o][i],this.removeNamespaces(i),this.emit("removed",o,i)}},{key:"hasResourceBundle",value:function(o,i){return this.getResource(o,i)!==void 0}},{key:"getResourceBundle",value:function(o,i){return i||(i=this.options.defaultNS),this.options.compatibilityAPI==="v1"?so(so({},{}),this.getResource(o,i)):this.getResource(o,i)}},{key:"getDataByLanguage",value:function(o){return this.data[o]}},{key:"hasLanguageSomeTranslations",value:function(o){var i=this.getDataByLanguage(o),s=i&&Object.keys(i)||[];return!!s.find(function(l){return i[l]&&Object.keys(i[l]).length>0})}},{key:"toJSON",value:function(){return this.data}}]),n}(ln),jc={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,n,r,o,i){var s=this;return t.forEach(function(l){s.processors[l]&&(n=s.processors[l].process(n,r,o,i))}),n}};function Ba(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function ke(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Ka={},Ha=function(e){wi(n,e);var t=qf(n);function n(r){var o,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return dt(this,n),o=t.call(this),Si&&ln.call(Xt(o)),zf(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,Xt(o)),o.options=i,o.options.keySeparator===void 0&&(o.options.keySeparator="."),o.logger=_t.create("translator"),o}return pt(n,[{key:"changeLanguage",value:function(o){o&&(this.language=o)}},{key:"exists",value:function(o){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(o==null)return!1;var s=this.resolve(o,i);return s&&s.res!==void 0}},{key:"extractFromKey",value:function(o,i){var s=i.nsSeparator!==void 0?i.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");var l=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,a=i.ns||this.options.defaultNS||[],u=s&&o.indexOf(s)>-1,f=!this.options.userDefinedKeySeparator&&!i.keySeparator&&!this.options.userDefinedNsSeparator&&!i.nsSeparator&&!Wf(o,s,l);if(u&&!f){var d=o.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:o,namespaces:a};var h=o.split(s);(s!==l||s===l&&this.options.ns.indexOf(h[0])>-1)&&(a=h.shift()),o=h.join(l)}return typeof a=="string"&&(a=[a]),{key:o,namespaces:a}}},{key:"translate",value:function(o,i,s){var l=this;if(pe(i)!=="object"&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),i||(i={}),o==null)return"";Array.isArray(o)||(o=[String(o)]);var a=i.returnDetails!==void 0?i.returnDetails:this.options.returnDetails,u=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,f=this.extractFromKey(o[o.length-1],i),d=f.key,h=f.namespaces,g=h[h.length-1],v=i.lng||this.language,k=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(v&&v.toLowerCase()==="cimode"){if(k){var O=i.nsSeparator||this.options.nsSeparator;return a?{res:"".concat(g).concat(O).concat(d),usedKey:d,exactUsedKey:d,usedLng:v,usedNS:g}:"".concat(g).concat(O).concat(d)}return a?{res:d,usedKey:d,exactUsedKey:d,usedLng:v,usedNS:g}:d}var p=this.resolve(o,i),c=p&&p.res,m=p&&p.usedKey||d,_=p&&p.exactUsedKey||d,S=Object.prototype.toString.apply(c),w=["[object Number]","[object Function]","[object RegExp]"],x=i.joinArrays!==void 0?i.joinArrays:this.options.joinArrays,E=!this.i18nFormat||this.i18nFormat.handleAsObject,V=typeof c!="string"&&typeof c!="boolean"&&typeof c!="number";if(E&&c&&V&&w.indexOf(S)<0&&!(typeof x=="string"&&S==="[object Array]")){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");var C=this.options.returnedObjectHandler?this.options.returnedObjectHandler(m,c,ke(ke({},i),{},{ns:h})):"key '".concat(d," (").concat(this.language,")' returned an object instead of string.");return a?(p.res=C,p):C}if(u){var H=S==="[object Array]",xe=H?[]:{},xt=H?_:m;for(var tt in c)if(Object.prototype.hasOwnProperty.call(c,tt)){var Tn="".concat(xt).concat(u).concat(tt);xe[tt]=this.translate(Tn,ke(ke({},i),{joinArrays:!1,ns:h})),xe[tt]===Tn&&(xe[tt]=c[tt])}c=xe}}else if(E&&typeof x=="string"&&S==="[object Array]")c=c.join(x),c&&(c=this.extendTranslation(c,o,i,s));else{var ht=!1,nt=!1,R=i.count!==void 0&&typeof i.count!="string",b=n.hasDefaultValue(i),D=R?this.pluralResolver.getSuffix(v,i.count,i):"",A=i["defaultValue".concat(D)]||i.defaultValue;!this.isValidLookup(c)&&b&&(ht=!0,c=A),this.isValidLookup(c)||(nt=!0,c=d);var q=i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey,Et=q&&nt?void 0:c,Ie=b&&A!==c&&this.options.updateMissing;if(nt||ht||Ie){if(this.logger.log(Ie?"updateKey":"missingKey",v,g,d,Ie?A:c),u){var Ln=this.resolve(d,ke(ke({},i),{},{keySeparator:!1}));Ln&&Ln.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}var be=[],Ct=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo==="fallback"&&Ct&&Ct[0])for(var zi=0;zi1&&arguments[1]!==void 0?arguments[1]:{},l,a,u,f,d;return typeof o=="string"&&(o=[o]),o.forEach(function(h){if(!i.isValidLookup(l)){var g=i.extractFromKey(h,s),v=g.key;a=v;var k=g.namespaces;i.options.fallbackNS&&(k=k.concat(i.options.fallbackNS));var O=s.count!==void 0&&typeof s.count!="string",p=O&&!s.ordinal&&s.count===0&&i.pluralResolver.shouldUseIntlApi(),c=s.context!==void 0&&(typeof s.context=="string"||typeof s.context=="number")&&s.context!=="",m=s.lngs?s.lngs:i.languageUtils.toResolveHierarchy(s.lng||i.language,s.fallbackLng);k.forEach(function(_){i.isValidLookup(l)||(d=_,!Ka["".concat(m[0],"-").concat(_)]&&i.utils&&i.utils.hasLoadedNamespace&&!i.utils.hasLoadedNamespace(d)&&(Ka["".concat(m[0],"-").concat(_)]=!0,i.logger.warn('key "'.concat(a,'" for languages "').concat(m.join(", "),`" won't get resolved as namespace "`).concat(d,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),m.forEach(function(S){if(!i.isValidLookup(l)){f=S;var w=[v];if(i.i18nFormat&&i.i18nFormat.addLookupKeys)i.i18nFormat.addLookupKeys(w,v,S,_,s);else{var x;O&&(x=i.pluralResolver.getSuffix(S,s.count,s));var E="".concat(i.options.pluralSeparator,"zero");if(O&&(w.push(v+x),p&&w.push(v+E)),c){var V="".concat(v).concat(i.options.contextSeparator).concat(s.context);w.push(V),O&&(w.push(V+x),p&&w.push(V+E))}}for(var C;C=w.pop();)i.isValidLookup(l)||(u=C,l=i.getResource(S,_,C,s))}}))})}}),{res:l,usedKey:a,exactUsedKey:u,usedLng:f,usedNS:d}}},{key:"isValidLookup",value:function(o){return o!==void 0&&!(!this.options.returnNull&&o===null)&&!(!this.options.returnEmptyString&&o==="")}},{key:"getResource",value:function(o,i,s){var l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(o,i,s,l):this.resourceStore.getResource(o,i,s,l)}}],[{key:"hasDefaultValue",value:function(o){var i="defaultValue";for(var s in o)if(Object.prototype.hasOwnProperty.call(o,s)&&i===s.substring(0,i.length)&&o[s]!==void 0)return!0;return!1}}]),n}(ln);function Hi(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Wa=function(){function e(t){dt(this,e),this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=_t.create("languageUtils")}return pt(e,[{key:"getScriptPartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return null;var r=n.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}},{key:"getLanguagePartFromCode",value:function(n){if(!n||n.indexOf("-")<0)return n;var r=n.split("-");return this.formatLanguageCode(r[0])}},{key:"formatLanguageCode",value:function(n){if(typeof n=="string"&&n.indexOf("-")>-1){var r=["hans","hant","latn","cyrl","cans","mong","arab"],o=n.split("-");return this.options.lowerCaseLng?o=o.map(function(i){return i.toLowerCase()}):o.length===2?(o[0]=o[0].toLowerCase(),o[1]=o[1].toUpperCase(),r.indexOf(o[1].toLowerCase())>-1&&(o[1]=Hi(o[1].toLowerCase()))):o.length===3&&(o[0]=o[0].toLowerCase(),o[1].length===2&&(o[1]=o[1].toUpperCase()),o[0]!=="sgn"&&o[2].length===2&&(o[2]=o[2].toUpperCase()),r.indexOf(o[1].toLowerCase())>-1&&(o[1]=Hi(o[1].toLowerCase())),r.indexOf(o[2].toLowerCase())>-1&&(o[2]=Hi(o[2].toLowerCase()))),o.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?n.toLowerCase():n}},{key:"isSupportedCode",value:function(n){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(n=this.getLanguagePartFromCode(n)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(n)>-1}},{key:"getBestMatchFromCodes",value:function(n){var r=this;if(!n)return null;var o;return n.forEach(function(i){if(!o){var s=r.formatLanguageCode(i);(!r.options.supportedLngs||r.isSupportedCode(s))&&(o=s)}}),!o&&this.options.supportedLngs&&n.forEach(function(i){if(!o){var s=r.getLanguagePartFromCode(i);if(r.isSupportedCode(s))return o=s;o=r.options.supportedLngs.find(function(l){if(l.indexOf(s)===0)return l})}}),o||(o=this.getFallbackCodes(this.options.fallbackLng)[0]),o}},{key:"getFallbackCodes",value:function(n,r){if(!n)return[];if(typeof n=="function"&&(n=n(r)),typeof n=="string"&&(n=[n]),Object.prototype.toString.apply(n)==="[object Array]")return n;if(!r)return n.default||[];var o=n[r];return o||(o=n[this.getScriptPartFromCode(r)]),o||(o=n[this.formatLanguageCode(r)]),o||(o=n[this.getLanguagePartFromCode(r)]),o||(o=n.default),o||[]}},{key:"toResolveHierarchy",value:function(n,r){var o=this,i=this.getFallbackCodes(r||this.options.fallbackLng||[],n),s=[],l=function(u){u&&(o.isSupportedCode(u)?s.push(u):o.logger.warn("rejecting language code not found in supportedLngs: ".concat(u)))};return typeof n=="string"&&n.indexOf("-")>-1?(this.options.load!=="languageOnly"&&l(this.formatLanguageCode(n)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&l(this.getScriptPartFromCode(n)),this.options.load!=="currentOnly"&&l(this.getLanguagePartFromCode(n))):typeof n=="string"&&l(this.formatLanguageCode(n)),i.forEach(function(a){s.indexOf(a)<0&&l(o.formatLanguageCode(a))}),s}}]),e}(),Jf=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],Zf={1:function(t){return+(t>1)},2:function(t){return+(t!=1)},3:function(t){return 0},4:function(t){return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2},5:function(t){return t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},6:function(t){return t==1?0:t>=2&&t<=4?1:2},7:function(t){return t==1?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2},8:function(t){return t==1?0:t==2?1:t!=8&&t!=11?2:3},9:function(t){return+(t>=2)},10:function(t){return t==1?0:t==2?1:t<7?2:t<11?3:4},11:function(t){return t==1||t==11?0:t==2||t==12?1:t>2&&t<20?2:3},12:function(t){return+(t%10!=1||t%100==11)},13:function(t){return+(t!==0)},14:function(t){return t==1?0:t==2?1:t==3?2:3},15:function(t){return t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2},16:function(t){return t%10==1&&t%100!=11?0:t!==0?1:2},17:function(t){return t==1||t%10==1&&t%100!=11?0:1},18:function(t){return t==0?0:t==1?1:2},19:function(t){return t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3},20:function(t){return t==1?0:t==0||t%100>0&&t%100<20?1:2},21:function(t){return t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0},22:function(t){return t==1?0:t==2?1:(t<0||t>10)&&t%10==0?2:3}},eh=["v1","v2","v3"],Ya={zero:0,one:1,two:2,few:3,many:4,other:5};function th(){var e={};return Jf.forEach(function(t){t.lngs.forEach(function(n){e[n]={numbers:t.nr,plurals:Zf[t.fc]}})}),e}var nh=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};dt(this,e),this.languageUtils=t,this.options=n,this.logger=_t.create("pluralResolver"),(!this.options.compatibilityJSON||this.options.compatibilityJSON==="v4")&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=th()}return pt(e,[{key:"addRule",value:function(n,r){this.rules[n]=r}},{key:"getRule",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(n,{type:r.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[n]||this.rules[this.languageUtils.getLanguagePartFromCode(n)]}},{key:"needsPlural",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=this.getRule(n,r);return this.shouldUseIntlApi()?o&&o.resolvedOptions().pluralCategories.length>1:o&&o.numbers.length>1}},{key:"getPluralFormsOfKey",value:function(n,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(n,o).map(function(i){return"".concat(r).concat(i)})}},{key:"getSuffixes",value:function(n){var r=this,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=this.getRule(n,o);return i?this.shouldUseIntlApi()?i.resolvedOptions().pluralCategories.sort(function(s,l){return Ya[s]-Ya[l]}).map(function(s){return"".concat(r.options.prepend).concat(s)}):i.numbers.map(function(s){return r.getSuffix(n,s,o)}):[]}},{key:"getSuffix",value:function(n,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=this.getRule(n,o);return i?this.shouldUseIntlApi()?"".concat(this.options.prepend).concat(i.select(r)):this.getSuffixRetroCompatible(i,r):(this.logger.warn("no plural rule found for: ".concat(n)),"")}},{key:"getSuffixRetroCompatible",value:function(n,r){var o=this,i=n.noAbs?n.plurals(r):n.plurals(Math.abs(r)),s=n.numbers[i];this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1&&(s===2?s="plural":s===1&&(s=""));var l=function(){return o.options.prepend&&s.toString()?o.options.prepend+s.toString():s.toString()};return this.options.compatibilityJSON==="v1"?s===1?"":typeof s=="number"?"_plural_".concat(s.toString()):l():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&n.numbers.length===2&&n.numbers[0]===1?l():this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString()}},{key:"shouldUseIntlApi",value:function(){return!eh.includes(this.options.compatibilityJSON)}}]),e}();function Ga(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function rt(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{};dt(this,e),this.logger=_t.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||function(n){return n},this.init(t)}return pt(e,[{key:"init",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};n.interpolation||(n.interpolation={escapeValue:!0});var r=n.interpolation;this.escape=r.escape!==void 0?r.escape:Kf,this.escapeValue=r.escapeValue!==void 0?r.escapeValue:!0,this.useRawValueToEscape=r.useRawValueToEscape!==void 0?r.useRawValueToEscape:!1,this.prefix=r.prefix?bn(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?bn(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?bn(r.nestingPrefix):r.nestingPrefixEscaped||bn("$t("),this.nestingSuffix=r.nestingSuffix?bn(r.nestingSuffix):r.nestingSuffixEscaped||bn(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=r.alwaysFormat!==void 0?r.alwaysFormat:!1,this.resetRegExp()}},{key:"reset",value:function(){this.options&&this.init(this.options)}},{key:"resetRegExp",value:function(){var n="".concat(this.prefix,"(.+?)").concat(this.suffix);this.regexp=new RegExp(n,"g");var r="".concat(this.prefix).concat(this.unescapePrefix,"(.+?)").concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(r,"g");var o="".concat(this.nestingPrefix,"(.+?)").concat(this.nestingSuffix);this.nestingRegexp=new RegExp(o,"g")}},{key:"interpolate",value:function(n,r,o,i){var s=this,l,a,u,f=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function d(O){return O.replace(/\$/g,"$$$$")}var h=function(p){if(p.indexOf(s.formatSeparator)<0){var c=za(r,f,p);return s.alwaysFormat?s.format(c,void 0,o,rt(rt(rt({},i),r),{},{interpolationkey:p})):c}var m=p.split(s.formatSeparator),_=m.shift().trim(),S=m.join(s.formatSeparator).trim();return s.format(za(r,f,_),S,o,rt(rt(rt({},i),r),{},{interpolationkey:_}))};this.resetRegExp();var g=i&&i.missingInterpolationHandler||this.options.missingInterpolationHandler,v=i&&i.interpolation&&i.interpolation.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables,k=[{regex:this.regexpUnescape,safeValue:function(p){return d(p)}},{regex:this.regexp,safeValue:function(p){return s.escapeValue?d(s.escape(p)):d(p)}}];return k.forEach(function(O){for(u=0;l=O.regex.exec(n);){var p=l[1].trim();if(a=h(p),a===void 0)if(typeof g=="function"){var c=g(n,l,i);a=typeof c=="string"?c:""}else if(i&&Object.prototype.hasOwnProperty.call(i,p))a="";else if(v){a=l[0];continue}else s.logger.warn("missed to pass in variable ".concat(p," for interpolating ").concat(n)),a="";else typeof a!="string"&&!s.useRawValueToEscape&&(a=Aa(a));var m=O.safeValue(a);if(n=n.replace(l[0],m),v?(O.regex.lastIndex+=a.length,O.regex.lastIndex-=l[0].length):O.regex.lastIndex=0,u++,u>=s.maxReplaces)break}}),n}},{key:"nest",value:function(n,r){var o=this,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s,l,a;function u(g,v){var k=this.nestingOptionsSeparator;if(g.indexOf(k)<0)return g;var O=g.split(new RegExp("".concat(k,"[ ]*{"))),p="{".concat(O[1]);g=O[0],p=this.interpolate(p,a);var c=p.match(/'/g),m=p.match(/"/g);(c&&c.length%2===0&&!m||m.length%2!==0)&&(p=p.replace(/'/g,'"'));try{a=JSON.parse(p),v&&(a=rt(rt({},v),a))}catch(_){return this.logger.warn("failed parsing options string in nesting for key ".concat(g),_),"".concat(g).concat(k).concat(p)}return delete a.defaultValue,g}for(;s=this.nestingRegexp.exec(n);){var f=[];a=rt({},i),a=a.replace&&typeof a.replace!="string"?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;var d=!1;if(s[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(s[1])){var h=s[1].split(this.formatSeparator).map(function(g){return g.trim()});s[1]=h.shift(),f=h,d=!0}if(l=r(u.call(this,s[1].trim(),a),a),l&&s[0]===n&&typeof l!="string")return l;typeof l!="string"&&(l=Aa(l)),l||(this.logger.warn("missed to resolve ".concat(s[1]," for nesting ").concat(n)),l=""),d&&(l=f.reduce(function(g,v){return o.format(g,v,i.lng,rt(rt({},i),{},{interpolationkey:s[1].trim()}))},l.trim())),n=n.replace(s[0],l),this.regexp.lastIndex=0}return n}}]),e}();function Qa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t-1){var r=e.split("(");t=r[0].toLowerCase().trim();var o=r[1].substring(0,r[1].length-1);if(t==="currency"&&o.indexOf(":")<0)n.currency||(n.currency=o.trim());else if(t==="relativetime"&&o.indexOf(":")<0)n.range||(n.range=o.trim());else{var i=o.split(";");i.forEach(function(s){if(s){var l=s.split(":"),a=Uf(l),u=a[0],f=a.slice(1),d=f.join(":").trim().replace(/^'+|'+$/g,"");n[u.trim()]||(n[u.trim()]=d),d==="false"&&(n[u.trim()]=!1),d==="true"&&(n[u.trim()]=!0),isNaN(d)||(n[u.trim()]=parseInt(d,10))}})}}return{formatName:t,formatOptions:n}}function Vn(e){var t={};return function(r,o,i){var s=o+JSON.stringify(i),l=t[s];return l||(l=e(o,i),t[s]=l),l(r)}}var ih=function(){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};dt(this,e),this.logger=_t.create("formatter"),this.options=t,this.formats={number:Vn(function(n,r){var o=new Intl.NumberFormat(n,Pt({},r));return function(i){return o.format(i)}}),currency:Vn(function(n,r){var o=new Intl.NumberFormat(n,Pt(Pt({},r),{},{style:"currency"}));return function(i){return o.format(i)}}),datetime:Vn(function(n,r){var o=new Intl.DateTimeFormat(n,Pt({},r));return function(i){return o.format(i)}}),relativetime:Vn(function(n,r){var o=new Intl.RelativeTimeFormat(n,Pt({},r));return function(i){return o.format(i,r.range||"day")}}),list:Vn(function(n,r){var o=new Intl.ListFormat(n,Pt({},r));return function(i){return o.format(i)}})},this.init(t)}return pt(e,[{key:"init",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}},o=r.interpolation;this.formatSeparator=o.formatSeparator?o.formatSeparator:o.formatSeparator||","}},{key:"add",value:function(n,r){this.formats[n.toLowerCase().trim()]=r}},{key:"addCached",value:function(n,r){this.formats[n.toLowerCase().trim()]=Vn(r)}},{key:"format",value:function(n,r,o){var i=this,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},l=r.split(this.formatSeparator),a=l.reduce(function(u,f){var d=oh(f),h=d.formatName,g=d.formatOptions;if(i.formats[h]){var v=u;try{var k=s&&s.formatParams&&s.formatParams[s.interpolationkey]||{},O=k.locale||k.lng||s.locale||s.lng||o;v=i.formats[h](u,O,Pt(Pt(Pt({},g),s),k))}catch(p){i.logger.warn(p)}return v}else i.logger.warn("there was no format function for ".concat(h));return u},n);return a}}]),e}();function qa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Xa(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ah(e,t){e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)}var uh=function(e){wi(n,e);var t=sh(n);function n(r,o,i){var s,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return dt(this,n),s=t.call(this),Si&&ln.call(Xt(s)),s.backend=r,s.store=o,s.services=i,s.languageUtils=i.languageUtils,s.options=l,s.logger=_t.create("backendConnector"),s.waitingReads=[],s.maxParallelReads=l.maxParallelReads||10,s.readingCalls=0,s.maxRetries=l.maxRetries>=0?l.maxRetries:5,s.retryTimeout=l.retryTimeout>=1?l.retryTimeout:350,s.state={},s.queue=[],s.backend&&s.backend.init&&s.backend.init(i,l.backend,l),s}return pt(n,[{key:"queueLoad",value:function(o,i,s,l){var a=this,u={},f={},d={},h={};return o.forEach(function(g){var v=!0;i.forEach(function(k){var O="".concat(g,"|").concat(k);!s.reload&&a.store.hasResourceBundle(g,k)?a.state[O]=2:a.state[O]<0||(a.state[O]===1?f[O]===void 0&&(f[O]=!0):(a.state[O]=1,v=!1,f[O]===void 0&&(f[O]=!0),u[O]===void 0&&(u[O]=!0),h[k]===void 0&&(h[k]=!0)))}),v||(d[g]=!0)}),(Object.keys(u).length||Object.keys(f).length)&&this.queue.push({pending:f,pendingCount:Object.keys(f).length,loaded:{},errors:[],callback:l}),{toLoad:Object.keys(u),pending:Object.keys(f),toLoadLanguages:Object.keys(d),toLoadNamespaces:Object.keys(h)}}},{key:"loaded",value:function(o,i,s){var l=o.split("|"),a=l[0],u=l[1];i&&this.emit("failedLoading",a,u,i),s&&this.store.addResourceBundle(a,u,s),this.state[o]=i?-1:2;var f={};this.queue.forEach(function(d){$f(d.loaded,[a],u),ah(d,o),i&&d.errors.push(i),d.pendingCount===0&&!d.done&&(Object.keys(d.loaded).forEach(function(h){f[h]||(f[h]={});var g=d.loaded[h];g.length&&g.forEach(function(v){f[h][v]===void 0&&(f[h][v]=!0)})}),d.done=!0,d.errors.length?d.callback(d.errors):d.callback())}),this.emit("loaded",f),this.queue=this.queue.filter(function(d){return!d.done})}},{key:"read",value:function(o,i,s){var l=this,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,u=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,f=arguments.length>5?arguments[5]:void 0;if(!o.length)return f(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:o,ns:i,fcName:s,tried:a,wait:u,callback:f});return}this.readingCalls++;var d=function(k,O){if(l.readingCalls--,l.waitingReads.length>0){var p=l.waitingReads.shift();l.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(k&&O&&a2&&arguments[2]!==void 0?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),a&&a();typeof o=="string"&&(o=this.languageUtils.toResolveHierarchy(o)),typeof i=="string"&&(i=[i]);var u=this.queueLoad(o,i,l,a);if(!u.toLoad.length)return u.pending.length||a(),null;u.toLoad.forEach(function(f){s.loadOne(f)})}},{key:"load",value:function(o,i,s){this.prepareLoading(o,i,{},s)}},{key:"reload",value:function(o,i,s){this.prepareLoading(o,i,{reload:!0},s)}},{key:"loadOne",value:function(o){var i=this,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",l=o.split("|"),a=l[0],u=l[1];this.read(a,u,"read",void 0,void 0,function(f,d){f&&i.logger.warn("".concat(s,"loading namespace ").concat(u," for language ").concat(a," failed"),f),!f&&d&&i.logger.log("".concat(s,"loaded namespace ").concat(u," for language ").concat(a),d),i.loaded(o,f,d)})}},{key:"saveMissing",value:function(o,i,s,l,a){var u=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},f=arguments.length>6&&arguments[6]!==void 0?arguments[6]:function(){};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(i)){this.logger.warn('did not save key "'.concat(s,'" as the namespace "').concat(i,'" was not yet loaded'),"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(s==null||s==="")){if(this.backend&&this.backend.create){var d=Xa(Xa({},u),{},{isUpdate:a}),h=this.backend.create.bind(this.backend);if(h.length<6)try{var g;h.length===5?g=h(o,i,s,l,d):g=h(o,i,s,l),g&&typeof g.then=="function"?g.then(function(v){return f(null,v)}).catch(f):f(null,g)}catch(v){f(v)}else h(o,i,s,l,f,d)}!o||!o[0]||this.store.addResource(o[0],i,s,l)}}}]),n}(ln);function Ja(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var n={};if(pe(t[1])==="object"&&(n=t[1]),typeof t[1]=="string"&&(n.defaultValue=t[1]),typeof t[2]=="string"&&(n.tDescription=t[2]),pe(t[2])==="object"||pe(t[3])==="object"){var r=t[3]||t[2];Object.keys(r).forEach(function(o){n[o]=r[o]})}return n},interpolation:{escapeValue:!0,format:function(t,n,r,o){return t},prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function Za(e){return typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function eu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function mt(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function lo(){}function ph(e){var t=Object.getOwnPropertyNames(Object.getPrototypeOf(e));t.forEach(function(n){typeof e[n]=="function"&&(e[n]=e[n].bind(e))})}var Go=function(e){wi(n,e);var t=ch(n);function n(){var r,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;if(dt(this,n),r=t.call(this),Si&&ln.call(Xt(r)),r.options=Za(o),r.services={},r.logger=_t,r.modules={external:[]},ph(Xt(r)),i&&!r.isInitialized&&!o.isClone){if(!r.options.initImmediate)return r.init(o,i),Jr(r,Xt(r));setTimeout(function(){r.init(o,i)},0)}return r}return pt(n,[{key:"init",value:function(){var o=this,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1?arguments[1]:void 0;typeof i=="function"&&(s=i,i={}),!i.defaultNS&&i.defaultNS!==!1&&i.ns&&(typeof i.ns=="string"?i.defaultNS=i.ns:i.ns.indexOf("translation")<0&&(i.defaultNS=i.ns[0]));var l=Ja();this.options=mt(mt(mt({},l),this.options),Za(i)),this.options.compatibilityAPI!=="v1"&&(this.options.interpolation=mt(mt({},l.interpolation),this.options.interpolation)),i.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=i.keySeparator),i.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=i.nsSeparator);function a(p){return p?typeof p=="function"?new p:p:null}if(!this.options.isClone){this.modules.logger?_t.init(a(this.modules.logger),this.options):_t.init(null,this.options);var u;this.modules.formatter?u=this.modules.formatter:typeof Intl<"u"&&(u=ih);var f=new Wa(this.options);this.store=new Qf(this.options.resources,this.options);var d=this.services;d.logger=_t,d.resourceStore=this.store,d.languageUtils=f,d.pluralResolver=new nh(f,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),u&&(!this.options.interpolation.format||this.options.interpolation.format===l.interpolation.format)&&(d.formatter=a(u),d.formatter.init(d,this.options),this.options.interpolation.format=d.formatter.format.bind(d.formatter)),d.interpolator=new rh(this.options),d.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},d.backendConnector=new uh(a(this.modules.backend),d.resourceStore,d,this.options),d.backendConnector.on("*",function(p){for(var c=arguments.length,m=new Array(c>1?c-1:0),_=1;_1?c-1:0),_=1;_0&&h[0]!=="dev"&&(this.options.lng=h[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined");var g=["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"];g.forEach(function(p){o[p]=function(){var c;return(c=o.store)[p].apply(c,arguments)}});var v=["addResource","addResources","addResourceBundle","removeResourceBundle"];v.forEach(function(p){o[p]=function(){var c;return(c=o.store)[p].apply(c,arguments),o}});var k=dr(),O=function(){var c=function(_,S){o.isInitialized&&!o.initializedStoreOnce&&o.logger.warn("init: i18next is already initialized. You should call init just once!"),o.isInitialized=!0,o.options.isClone||o.logger.log("initialized",o.options),o.emit("initialized",o.options),k.resolve(S),s(_,S)};if(o.languages&&o.options.compatibilityAPI!=="v1"&&!o.isInitialized)return c(null,o.t.bind(o));o.changeLanguage(o.options.lng,c)};return this.options.resources||!this.options.initImmediate?O():setTimeout(O,0),k}},{key:"loadResources",value:function(o){var i=this,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lo,l=s,a=typeof o=="string"?o:this.language;if(typeof o=="function"&&(l=o),!this.options.resources||this.options.partialBundledLanguages){if(a&&a.toLowerCase()==="cimode")return l();var u=[],f=function(g){if(g){var v=i.services.languageUtils.toResolveHierarchy(g);v.forEach(function(k){u.indexOf(k)<0&&u.push(k)})}};if(a)f(a);else{var d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.forEach(function(h){return f(h)})}this.options.preload&&this.options.preload.forEach(function(h){return f(h)}),this.services.backendConnector.load(u,this.options.ns,function(h){!h&&!i.resolvedLanguage&&i.language&&i.setResolvedLanguage(i.language),l(h)})}else l(null)}},{key:"reloadResources",value:function(o,i,s){var l=dr();return o||(o=this.languages),i||(i=this.options.ns),s||(s=lo),this.services.backendConnector.reload(o,i,function(a){l.resolve(),s(a)}),l}},{key:"use",value:function(o){if(!o)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!o.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return o.type==="backend"&&(this.modules.backend=o),(o.type==="logger"||o.log&&o.warn&&o.error)&&(this.modules.logger=o),o.type==="languageDetector"&&(this.modules.languageDetector=o),o.type==="i18nFormat"&&(this.modules.i18nFormat=o),o.type==="postProcessor"&&jc.addPostProcessor(o),o.type==="formatter"&&(this.modules.formatter=o),o.type==="3rdParty"&&this.modules.external.push(o),this}},{key:"setResolvedLanguage",value:function(o){if(!(!o||!this.languages)&&!(["cimode","dev"].indexOf(o)>-1))for(var i=0;i-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}}},{key:"changeLanguage",value:function(o,i){var s=this;this.isLanguageChangingTo=o;var l=dr();this.emit("languageChanging",o);var a=function(h){s.language=h,s.languages=s.services.languageUtils.toResolveHierarchy(h),s.resolvedLanguage=void 0,s.setResolvedLanguage(h)},u=function(h,g){g?(a(g),s.translator.changeLanguage(g),s.isLanguageChangingTo=void 0,s.emit("languageChanged",g),s.logger.log("languageChanged",g)):s.isLanguageChangingTo=void 0,l.resolve(function(){return s.t.apply(s,arguments)}),i&&i(h,function(){return s.t.apply(s,arguments)})},f=function(h){!o&&!h&&s.services.languageDetector&&(h=[]);var g=typeof h=="string"?h:s.services.languageUtils.getBestMatchFromCodes(h);g&&(s.language||a(g),s.translator.language||s.translator.changeLanguage(g),s.services.languageDetector&&s.services.languageDetector.cacheUserLanguage&&s.services.languageDetector.cacheUserLanguage(g)),s.loadResources(g,function(v){u(v,g)})};return!o&&this.services.languageDetector&&!this.services.languageDetector.async?f(this.services.languageDetector.detect()):!o&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(f):this.services.languageDetector.detect(f):f(o),l}},{key:"getFixedT",value:function(o,i,s){var l=this,a=function u(f,d){var h;if(pe(d)!=="object"){for(var g=arguments.length,v=new Array(g>2?g-2:0),k=2;k1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;var l=this.resolvedLanguage||this.languages[0],a=this.options?this.options.fallbackLng:!1,u=this.languages[this.languages.length-1];if(l.toLowerCase()==="cimode")return!0;var f=function(g,v){var k=i.services.backendConnector.state["".concat(g,"|").concat(v)];return k===-1||k===2};if(s.precheck){var d=s.precheck(this,f);if(d!==void 0)return d}return!!(this.hasResourceBundle(l,o)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||f(l,o)&&(!a||f(u,o)))}},{key:"loadNamespaces",value:function(o,i){var s=this,l=dr();return this.options.ns?(typeof o=="string"&&(o=[o]),o.forEach(function(a){s.options.ns.indexOf(a)<0&&s.options.ns.push(a)}),this.loadResources(function(a){l.resolve(),i&&i(a)}),l):(i&&i(),Promise.resolve())}},{key:"loadLanguages",value:function(o,i){var s=dr();typeof o=="string"&&(o=[o]);var l=this.options.preload||[],a=o.filter(function(u){return l.indexOf(u)<0});return a.length?(this.options.preload=l.concat(a),this.loadResources(function(u){s.resolve(),i&&i(u)}),s):(i&&i(),Promise.resolve())}},{key:"dir",value:function(o){if(o||(o=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!o)return"rtl";var i=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],s=this.services&&this.services.languageUtils||new Wa(Ja());return i.indexOf(s.getLanguagePartFromCode(o))>-1||o.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}},{key:"cloneInstance",value:function(){var o=this,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lo,l=mt(mt(mt({},this.options),i),{isClone:!0}),a=new n(l);(i.debug!==void 0||i.prefix!==void 0)&&(a.logger=a.logger.clone(i));var u=["store","services","language"];return u.forEach(function(f){a[f]=o[f]}),a.services=mt({},this.services),a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a.translator=new Ha(a.services,a.options),a.translator.on("*",function(f){for(var d=arguments.length,h=new Array(d>1?d-1:0),g=1;g0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new Go(e,t)});var ce=Go.createInstance();ce.createInstance=Go.createInstance;ce.createInstance;ce.dir;ce.init;ce.loadResources;ce.reloadResources;ce.use;ce.changeLanguage;ce.getFixedT;ce.t;ce.exists;ce.setDefaultNamespace;ce.hasLoadedNamespace;ce.loadNamespaces;ce.loadLanguages;function fh(e,t){if(e==null)return{};var n={},r=Object.keys(e),o,i;for(i=0;i=0)&&(n[o]=e[o]);return n}function Tl(e,t){if(e==null)return{};var n=fh(e,t),r,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var hh={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};const mh=kc(hh);var gh=/\s([^'"/\s><]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function tu(e){var t={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},n=e.match(/<\/?([^\s]+?)[/\s>]/);if(n&&(t.name=n[1],(mh[n[1]]||e.charAt(e.length-2)==="/")&&(t.voidElement=!0),t.name.startsWith("!--"))){var r=e.indexOf("-->");return{type:"comment",comment:r!==-1?e.slice(4,r):""}}for(var o=new RegExp(gh),i=null;(i=o.exec(e))!==null;)if(i[0].trim())if(i[1]){var s=i[1].trim(),l=[s,""];s.indexOf("=")>-1&&(l=s.split("=")),t.attrs[l[0]]=l[1],o.lastIndex--}else i[2]&&(t.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1));return t}var vh=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,yh=/^\s*$/,_h=Object.create(null);function Uc(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(n){var r=[];for(var o in n)r.push(o+'="'+n[o]+'"');return r.length?" "+r.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(Uc,"")+"";case"comment":return e+""}}var kh={parse:function(e,t){t||(t={}),t.components||(t.components=_h);var n,r=[],o=[],i=-1,s=!1;if(e.indexOf("<")!==0){var l=e.indexOf("<");r.push({type:"text",content:l===-1?e:e.substring(0,l)})}return e.replace(vh,function(a,u){if(s){if(a!=="")return;s=!1}var f,d=a.charAt(1)!=="/",h=a.startsWith("");return{type:"comment",comment:o!==-1?e.slice(4,o):""}}for(var r=new RegExp(ih),i=null;(i=r.exec(e))!==null;)if(i[0].trim())if(i[1]){var s=i[1].trim(),l=[s,""];s.indexOf("=")>-1&&(l=s.split("=")),t.attrs[l[0]]=l[1],r.lastIndex--}else i[2]&&(t.attrs[i[2]]=i[3].trim().substring(1,i[3].length-1));return t}var sh=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,lh=/^\s*$/,ah=Object.create(null);function bc(e,t){switch(t.type){case"text":return e+t.content;case"tag":return e+="<"+t.name+(t.attrs?function(n){var o=[];for(var r in n)o.push(r+'="'+n[r]+'"');return o.length?" "+o.join(" "):""}(t.attrs):"")+(t.voidElement?"/>":">"),t.voidElement?e:e+t.children.reduce(bc,"")+"";case"comment":return e+""}}var uh={parse:function(e,t){t||(t={}),t.components||(t.components=ah);var n,o=[],r=[],i=-1,s=!1;if(e.indexOf("<")!==0){var l=e.indexOf("<");o.push({type:"text",content:l===-1?e:e.substring(0,l)})}return e.replace(sh,function(a,u){if(s){if(a!=="")return;s=!1}var f,d=a.charAt(1)!=="/",h=a.startsWith("y~%5}0!W2CO1?mTtsILEM#rjpdWO~krb1hBju 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

fHU1ZPWTk2S&MQ7m6oEcnU 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

ol3MfpZ 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 U(VU#OP6a1BsmUFN-v$5w0K_HeDgXcg literal 0 HcmV?d00001 diff --git a/docs/sphinx_setup/_static/benchmarks_files/OV-2024.0-system-info-detailed.xlsx b/docs/sphinx_setup/_static/benchmarks_files/OV-2024.0-system-info-detailed.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..50d1fc241ebfc1b16b24dbe2e62ef27ce6fef3fb GIT binary patch literal 85682 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
uL+s-Z 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 B3Ss~N literal 0 HcmV?d00001 diff --git a/docs/sphinx_setup/_static/benchmarks_files/OV-benchmark-data.csv b/docs/sphinx_setup/_static/benchmarks_files/OV-benchmark-data.csv index c3846840f92466..7a48039df07bd4 100644 --- a/docs/sphinx_setup/_static/benchmarks_files/OV-benchmark-data.csv +++ b/docs/sphinx_setup/_static/benchmarks_files/OV-benchmark-data.csv @@ -1,646 +1,510 @@ -Network model,Release,IE-Type,Platform name,Throughput-INT8,Throughput-FP16,Throughput-FP32,Value,Efficiency,Price,TDP,Sockets,Price/Socket,TDP/Socket,Latency,UOM_T,UOM_V,UOM_E,UOM_L,Latency_FP16,Latency_FP32,Latency_int4,Throughput_INT4,Latency_BF16,Throughput_BF16 -begin_rec, , , ,,,,,,,,,,,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,4.69,,2.01,0.07,0.391,67,12,1,67,12,215.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,11.24,,4.24,0.105,0.749,107,15,1,107,15,88.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,21.33,,14.87,0.182,0.328,117,65,1,117,65,48.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,32.11,,21.78,0.15,0.917,214,35,1,214,35,36.62,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,120,,47.47,0.365,0.96,329,125,1,329,125,13.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,33.61,,22.6,0.175,0.517,192,65,1,192,65,31,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,36.51,,13.06,0.075,2.434,490,15,1,490,15,30.06,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,78.5,,31.18,0.156,1.744,502,45,1,502,45,18.4,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,59.94,,24.34,0.125,2.141,480,28,1,480,28,25.51,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,43.91,16.66,18.63,0.095,1.568,460,28,1,460,28,39.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,27.41,,18.01,0.09,0.783,303,35,1,303,35,44.18,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,32.8,,21.25,0.067,0.937,488,35,1,488,35,37.79,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,170.08,,67.79,0.284,1.361,599,125,1,599,125,10.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom,Intel Processor N200 CPU-only,1.68,,0.86,0.021,0.28,80,6,1,80,6,641.81,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,50.98,,33.63,0.086,0.408,594,125,1,594,125,29.14,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,20.79,,14.58,0.083,0.293,249,71,1,249,71,49.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,215.66,,79.72,0.069,1.027,3144,210,2,1572,105,14.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,548.18,,219.52,0.032,1.337,16954,410,2,8477,205,8,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,877.24,,338.85,0.047,1.625,18718,540,2,9359,270,7.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,3048.48,,495.88,0.09,4.355,34000,700,2,17000,350,4.09,FPS,FPS/$,FPS/TDP,msec.,,,,,5.14,2053.64 -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,,,,0,0,21400,700,2,10700,350,3.77,FPS,FPS/$,FPS/TDP,msec.,,,,,5.83, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,207.51,,76.42,0.103,1.038,2022,200,2,1011,100,14.65,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,427.16,,165.35,0.188,1.424,2274,300,2,1137,150,8.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,826.33,677.1,,0.413,5.509,2000,150,1,2000,150,19.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,accel,Intel® Arc™ A-770M Graphics dGPU,599.65,553.65,,1.868,3.998,321,150,1,321,150,25.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,175.35,123.59,,0.092,2.338,1900,75,1,1900,75,91.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,13.54,14.62,,0.202,1.128,67,12,1,67,12,294.65,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,45.75,32.08,,0.428,3.05,107,15,1,107,15,87.22,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,47.98,36.04,,0.098,3.199,490,15,1,490,15,83.75,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,89.66,62.28,,0.179,1.992,502,45,1,502,45,43.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,94.1,66.77,,0.196,3.361,480,28,1,480,28,42.16,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,143.64,95.87,95.16,0.312,5.13,460,28,1,460,28,7.09,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,3.33,2.35,,0.042,0.555,80,6,1,80,6,1198.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,16.22,,10.71,0.242,1.352,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,46.42,,23.28,0.434,3.095,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,48.79,,20.55,0.1,3.253,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,98.51,,42.81,0.196,2.189,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,108.01,,48.22,0.225,3.858,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,4.38,,2.03,0.055,0.73,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-base-cased,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,66.9,,36.11,0.145,2.389,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +Network model,Release,IE-Type,Platform name,Throughput-INT8,Throughput-FP16,Throughput-FP32,Value,Efficiency,Price,TDP,Sockets,Price/Socket,TDP/Socket,Latency_int8,UOM_T,UOM_V,UOM_E,UOM_L,Latency_FP16,Latency_FP32,Latency_int4,Throughput_INT4,Latency_BF16,Throughput_BF16 +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom,Intel Atom x7425E CPU-only,10.77,,5.46,0.185,0.897,58,12,1,58,12,96.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom,Intel Atom X6425E CPU-only,4.7,,1.92,0.07,0.391,67,12,1,67,12,217.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom,Intel Celeron 6305E CPU-only,11.16,,4.21,0.104,0.744,107,15,1,107,15,89.31,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i3-8100 CPU-only,21.23,,14.8,0.181,0.326,117,65,1,117,65,49.33,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i5-10500TE CPU-only,32.33,,21.64,0.151,0.923,214,35,1,214,35,36.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i5-13600K CPU-only,119.02,,47.46,0.361,0.952,329,125,1,329,125,13.91,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i5-8500 CPU-only,33,,21.97,0.171,0.507,192,65,1,192,65,31.78,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,50.62,,18.29,0.119,1.808,426,28,1,426,28,22.9,FPS,FPS/$,FPS/TDP,msec.,22.9,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i7-12700H CPU-only,75.52,,31.28,0.15,1.678,502,45,1,502,45,18.25,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,45.55,,17.91,0.099,1.627,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i7-1360P CPU-only,59.52,,24.12,0.124,2.125,480,28,1,480,28,25.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i7-8700T CPU-only,27.4,,17.95,0.09,0.782,303,35,1,303,35,43.32,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i9-10900TE CPU-only,32.92,,21.14,0.067,0.94,488,35,1,488,35,37.69,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core,Intel Core i9-13900K CPU-only,160.07,,64.22,0.267,1.28,599,125,1,599,125,18.33,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,51.06,,33.31,0.085,0.408,594,125,1,594,125,28.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,20.73,,14.45,0.083,0.292,249,71,1,249,71,50.38,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,212.09,,79.4,0.067,1.009,3144,210,2,1572,105,14.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,2776.37,,401.57,0.358,5.553,7750,500,2,3875,250,3.56,FPS,FPS/$,FPS/TDP,msec.,,9.66,,,4.7,1919.58 +bert-base-cased,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,559.57,,220.33,0.033,1.364,16954,410,2,8477,205,7.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,882.74,,339.81,0.047,1.634,18718,540,2,9359,270,5.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,3180.1,,498.3,0.093,4.543,34000,700,2,17000,350,3.78,FPS,FPS/$,FPS/TDP,msec.,,,,,4.56,2109.44 +bert-base-cased,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,203.5,,76.05,0.1,0.969,2022,210,2,1011,125,14.49,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,431.54,,168.14,0.189,1.438,2274,300,2,1137,150,8.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,833.78,702.31,,0.416,5.558,2000,150,1,2000,150,18.85,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,720.01,597.24,,2.243,4.8,321,150,1,321,150,22.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,160.89,133.6,,0.084,2.145,1900,75,1,1900,75,99.41,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,23.92,19.56,,0.412,1.994,58,12,1,58,12,148.76,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,13.5,15.09,,0.201,1.125,67,12,1,67,12,295.69,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,45.56,33.19,,0.425,3.037,107,15,1,107,15,87.62,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,67.76,53.22,,0.159,2.42,426,28,1,426,28,58.5,FPS,FPS/$,FPS/TDP,msec.,58.5,,,,, +bert-base-cased,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,84.2,65.99,,0.167,1.871,502,45,1,502,45,44.93,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,110.47,,74.06,0.24,3.945,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,216.2,160.16,,0.47,7.721,460,28,1,460,28,7.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,91.65,70.94,,0.19,3.273,480,28,1,480,28,43.27,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,24.21,,9.41,0.417,2.017,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,16.28,,10.73,0.243,1.357,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,46.14,,23.26,0.431,3.076,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,86.84,,38.75,0.204,3.101,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,98.13,,42.45,0.195,2.18,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-base-cased,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,105.25,,46.31,0.219,3.759,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0.46,,0.18,0.007,0.038,67,12,1,67,12,2197.76,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,1.17,,0.38,0.011,0.078,107,15,1,107,15,866.64,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,2.08,,1.3,0.018,0.032,117,65,1,117,65,494.48,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,2.99,,1.84,0.014,0.085,214,35,1,214,35,349.48,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,10.77,,3.93,0.033,0.086,329,125,1,329,125,128.5,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,3.26,,2.01,0.017,0.05,192,65,1,192,65,299.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,3.57,,1.16,0.007,0.238,490,15,1,490,15,284.21,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,7.5,,2.7,0.015,0.167,502,45,1,502,45,172.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,5.6,,2.13,0.012,0.2,480,28,1,480,28,249.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,4.43,1.46,1.54,0.01,0.158,460,28,1,460,28,278.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,2.67,,1.59,0.009,0.076,303,35,1,303,35,413.43,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,3.26,,1.89,0.007,0.093,488,35,1,488,35,329.67,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,15.91,,6.04,0.027,0.127,599,125,1,599,125,91,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom,Intel Processor N200 CPU-only,0.16,,0.07,0.002,0.027,80,6,1,80,6,6365.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,4.62,,3.09,0.008,0.037,594,125,1,594,125,227.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,2.1,,1.33,0.008,0.03,249,71,1,249,71,485.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,21.48,,6.92,0.007,0.102,3144,210,2,1572,105,105.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,49.64,,17.68,0.003,0.121,16954,410,2,8477,205,54.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,62.79,,26.66,0.003,0.116,18718,540,2,9359,270,183.01,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,247.51,,44.45,0.007,0.354,34000,700,2,17000,350,27.69,FPS,FPS/$,FPS/TDP,msec.,,,,,32.4,180.86 -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,,,,0,0,21400,700,2,10700,350,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,20.56,,6.59,0.01,0.103,2022,200,2,1011,100,107.25,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,38.02,,14.31,0.017,0.127,2274,300,2,1137,150,120.33,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,149.16,103.46,,0.075,0.994,2000,150,1,2000,150,106.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,129.32,95.42,,0.403,0.862,321,150,1,321,150,122.37,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,30.36,20.75,,0.016,0.405,1900,75,1,1900,75,526.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,0.74,1.42,,0.011,0.062,67,12,1,67,12,5352.05,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,4.94,3.39,,0.046,0.329,107,15,1,107,15,808.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,4.43,4.06,,0.009,0.295,490,15,1,490,15,899.93,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,10.21,6.9,,0.02,0.227,502,45,1,502,45,382.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,9.6,7.76,,0.02,0.343,480,28,1,480,28,415.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,19.57,11.81,11.89,0.043,0.699,460,28,1,460,28,49.83,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,0.33,0.22,,0.004,0.055,80,6,1,80,6,11890.91,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,1.02,,0.78,0.015,0.085,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,5.17,,2.35,0.048,0.345,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,4,,1.91,0.008,0.267,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,9.7,,4.08,0.019,0.216,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,8.92,,4.42,0.019,0.319,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,0.42,,0.17,0.005,0.07,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -bert-large-uncased-whole-word-masking-squad-0001,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,10.48,,4.92,0.023,0.374,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom,Intel Atom x7425E CPU-only,1.03,,0.47,0.017,0.086,58,12,1,58,12,990.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom,Intel Atom X6425E CPU-only,0.46,,0.18,0.006,0.038,67,12,1,67,12,2211.14,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom,Intel Celeron 6305E CPU-only,1.15,,0.37,0.01,0.076,107,15,1,107,15,870.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i3-8100 CPU-only,2.08,,1.29,0.017,0.032,117,65,1,117,65,490.5,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i5-10500TE CPU-only,2.98,,1.84,0.013,0.085,214,35,1,214,35,352.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i5-13600K CPU-only,10.76,,3.95,0.032,0.086,329,125,1,329,125,124.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i5-8500 CPU-only,3.21,,1.95,0.016,0.049,192,65,1,192,65,325.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,5.04,,1.65,0.012,0.18,426,28,1,426,28,200.86,FPS,FPS/$,FPS/TDP,msec.,200.86,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i7-12700H CPU-only,7.39,,2.73,0.014,0.164,502,45,1,502,45,171.37,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,4.47,,1.51,0.01,0.16,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i7-1360P CPU-only,5.64,,2.13,0.011,0.201,480,28,1,480,28,235.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i7-8700T CPU-only,2.68,,1.59,0.008,0.076,303,35,1,303,35,413.3,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i9-10900TE CPU-only,3.25,,1.94,0.006,0.093,488,35,1,488,35,331.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core,Intel Core i9-13900K CPU-only,14.66,,5.47,0.024,0.117,599,125,1,599,125,159.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,4.66,,3.09,0.007,0.037,594,125,1,594,125,224.59,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,2.1,,1.31,0.008,0.029,249,71,1,249,71,485.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,21.74,,6.91,0.006,0.103,3144,210,2,1572,105,104.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,,xeon,Intel Xeon Gold 6548N CPU-only,168.13,,36.05,0.022,0.336,7750,500,2,3875,250,22.35,FPS,FPS/$,FPS/TDP,msec.,,72.61,,,30.88,140.66 +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,51.04,,17.89,0.003,0.124,16954,410,2,8477,205,54.77,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,62.88,,27.01,0.003,0.116,18718,540,2,9359,270,180.65,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,225.61,,44.76,0.006,0.322,34000,700,2,17000,350,23.93,FPS,FPS/$,FPS/TDP,msec.,,,,,30.18,181.72 +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,20.79,,6.83,0.01,0.099,2022,210,2,1011,125,107.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,38.46,,15.15,0.016,0.128,2274,300,2,1137,150,110.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,108.08,112.77,,0.054,0.72,2000,150,1,2000,150,147.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,103.46,110.32,,0.322,0.689,321,150,1,321,150,154.59,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,21.33,22.33,,0.011,0.284,1900,75,1,1900,75,749.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,1.97,1.74,,0.034,0.164,58,12,1,58,12,1733.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,0.74,1.46,,0.011,0.062,67,12,1,67,12,5341.49,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,4.91,3.56,,0.045,0.327,107,15,1,107,15,812.7,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,8.04,6.33,,0.019,0.287,426,28,1,426,28,478.16,FPS,FPS/$,FPS/TDP,msec.,478.16,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,9.69,7.3,,0.019,0.215,502,45,1,502,45,384.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,10.69,,5.59,0.023,0.382,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,19.62,12.06,,0.043,0.701,460,28,1,460,28,49.43,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,9.53,8.29,,0.019,0.34,480,28,1,480,28,419.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,2.14,,0.6,0.037,0.179,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,1.02,,0.79,0.015,0.085,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,5.13,,2.35,0.048,0.342,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,9.13,,3.7,0.021,0.326,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,9.59,,3.88,0.019,0.213,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +bert-large-uncased-whole-word-masking-squad-0001,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,8.44,,4.31,0.017,0.301,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -efficientdet-d0,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,7.27,,5.11,0.109,0.606,67,12,1,67,12,139.59,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,18.16,,11.15,0.17,1.211,107,15,1,107,15,56.71,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,36.63,,23.69,0.313,0.564,117,65,1,117,65,28.3,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,58.59,,29.94,0.274,1.674,214,35,1,214,35,21.08,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,155.8,,92.2,0.474,1.246,329,125,1,329,125,9.47,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,58.38,,38.12,0.304,0.898,192,65,1,192,65,18.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,50.69,,21.01,0.103,3.379,490,15,1,490,15,20.96,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,104.54,,55.21,0.208,2.323,502,45,1,502,45,12.32,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,80.74,,38.07,0.168,2.884,480,28,1,480,28,17.37,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,67.69,40.59,40.29,0.147,2.418,460,28,1,460,28,27.28,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,51.93,,35.14,0.171,1.484,303,35,1,303,35,24.27,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,64.77,,35.94,0.133,1.851,488,35,1,488,35,19.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,219.51,,110.91,0.366,1.756,599,125,1,599,125,7.39,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom,Intel Processor N200 CPU-only,2.09,,1.66,0.026,0.348,80,6,1,80,6,488.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,97.21,,39.85,0.164,0.778,594,125,1,594,125,14.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,35.04,,26.91,0.141,0.494,249,71,1,249,71,29.4,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,258.66,,164.17,0.082,1.232,3144,210,2,1572,105,11.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,520.22,,307.09,0.031,1.269,16954,410,2,8477,205,7.59,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,879.6,,474.57,0.047,1.629,18718,540,2,9359,270,4.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,1044.34,,858.3,0.031,1.492,34000,700,2,17000,350,5.6,FPS,FPS/$,FPS/TDP,msec.,,,,,6.15,810.14 -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,1282.93,,,0.06,1.833,21400,700,2,10700,350,5.28,FPS,FPS/$,FPS/TDP,msec.,,,,,5.62, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,250.24,,157.28,0.124,1.251,2022,200,2,1011,100,12.31,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,480.52,,286.84,0.211,1.602,2274,300,2,1137,150,6.07,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,842.03,824.33,,0.421,5.614,2000,150,1,2000,150,18.51,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,595.43,548.13,,1.855,3.97,321,150,1,321,150,26.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,125.87,115.66,,0.066,1.678,1900,75,1,1900,75,127.39,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,21.55,25.3,,0.322,1.796,67,12,1,67,12,185.07,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,72.59,60.57,,0.678,4.839,107,15,1,107,15,54.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,55.85,43.12,,0.114,3.723,490,15,1,490,15,70.09,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,127.65,103.29,,0.254,2.837,502,45,1,502,45,30.98,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,114.62,91.64,,0.239,4.094,480,28,1,480,28,34.18,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,161.83,138.39,138.15,0.352,5.78,460,28,1,460,28,8.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,5.57,4.93,,0.07,0.928,80,6,1,80,6,715.56,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,22.97,,14.52,0.343,1.914,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,57.32,,32.18,0.536,3.821,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,52.45,,18.97,0.107,3.497,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,131.11,,53.93,0.261,2.914,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,110.64,,40.83,0.231,3.951,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,6,,3.7,0.075,1,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -efficientdet-d0,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,115.91,,91.58,0.252,4.14,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom,Intel Atom x7425E CPU-only,14.05,,10.37,0.242,1.171,58,12,1,58,12,73.71,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom,Intel Atom X6425E CPU-only,7.29,,5.13,0.108,0.608,67,12,1,67,12,139.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom,Intel Celeron 6305E CPU-only,18.72,,11.29,0.175,1.248,107,15,1,107,15,57.77,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i3-8100 CPU-only,36.62,,24.79,0.313,0.563,117,65,1,117,65,28.26,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i5-10500TE CPU-only,59.66,,29.98,0.278,1.704,214,35,1,214,35,20.96,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i5-13600K CPU-only,150.24,,92.11,0.456,1.201,329,125,1,329,125,9.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i5-8500 CPU-only,58.19,,38.47,0.303,0.895,192,65,1,192,65,17.94,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,72.74,,40.85,0.171,2.598,426,28,1,426,28,14.9,FPS,FPS/$,FPS/TDP,msec.,14.9,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i7-12700H CPU-only,106.95,,54.49,0.213,2.376,502,45,1,502,45,12.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,65.18,,38.36,0.142,2.328,460,28,1,460,28,25.12,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i7-1360P CPU-only,80.31,,38.13,0.167,2.868,480,28,1,480,28,17.18,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i7-8700T CPU-only,51.81,,35.03,0.17,1.48,303,35,1,303,35,24.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i9-10900TE CPU-only,64.86,,35.97,0.132,1.853,488,35,1,488,35,18.84,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core,Intel Core i9-13900K CPU-only,202.36,,105.19,0.337,1.618,599,125,1,599,125,12.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,97.07,,40.01,0.163,0.776,594,125,1,594,125,13.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,35.05,,27.29,0.14,0.493,249,71,1,249,71,29.38,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,258.09,,164.68,0.082,1.229,3144,210,2,1572,105,12.27,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,805.5,,650.9,0.104,1.611,7750,500,2,3875,250,4.59,FPS,FPS/$,FPS/TDP,msec.,,4.57,,,4.91,628.46 +efficientdet-d0,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,515.55,,310.53,0.03,1.257,16954,410,2,8477,205,7.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,839.89,,475.55,0.044,1.555,18718,540,2,9359,270,7.4,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,1053.3,,856.32,0.03,1.504,34000,700,2,17000,350,5.83,FPS,FPS/$,FPS/TDP,msec.,,,,,5.87,805.18 +efficientdet-d0,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,248.36,,157.85,0.122,1.182,2022,210,2,1011,125,12.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,480.49,,288.29,0.211,1.601,2274,300,2,1137,150,6.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,847.64,828.72,,0.423,5.65,2000,150,1,2000,150,18.38,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,698.63,635.03,,2.176,4.657,321,150,1,321,150,22.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,137.26,120.82,,0.072,1.83,1900,75,1,1900,75,116.43,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,35.03,30.59,,0.604,2.919,58,12,1,58,12,104.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,21.54,25.35,,0.321,1.795,67,12,1,67,12,185.24,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,72.6,60.56,,0.678,4.84,107,15,1,107,15,54.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,92.54,76.94,,0.217,3.305,426,28,1,426,28,42.75,FPS,FPS/$,FPS/TDP,msec.,42.75,,,,, +efficientdet-d0,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,126.83,102.57,,0.252,2.818,502,45,1,502,45,31.1,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,113.74,,87.6,0.247,4.062,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,165.1,131.3,,0.359,5.896,460,28,1,460,28,8.9,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,114.83,91.38,,0.239,4.101,480,28,1,480,28,34.05,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,37.5,,17.13,0.646,3.125,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,23.23,,14.65,0.346,1.935,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,58.03,,32.04,0.542,3.869,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,104.75,,49.22,0.246,3.741,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,129.06,,54.11,0.257,2.868,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +efficientdet-d0,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,108.28,,41,0.225,3.867,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0.04,,0.02,0.001,0.003,67,12,1,67,12,21208.56,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,0.15,,0.04,0.001,0.01,107,15,1,107,15,6531.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,0.28,,0.18,0.002,0.004,117,65,1,117,65,3605.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,0.41,,0.26,0.002,0.012,214,35,1,214,35,2752.47,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,1.56,,0.52,0.005,0.012,329,125,1,329,125,931.24,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,0.45,,0.28,0.002,0.007,192,65,1,192,65,2414.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,0.48,,0.13,0.001,0.032,490,15,1,490,15,2597.98,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,0.98,,0.38,0.002,0.022,502,45,1,502,45,1135.33,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,0.78,,0.3,0.002,0.028,480,28,1,480,28,1801.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,0.77,0.22,,0.002,0.027,460,28,1,460,28,1775.25,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,0.35,,0.2,0.001,0.01,303,35,1,303,35,3270.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,0.44,,0.26,0.001,0.013,488,35,1,488,35,2593.47,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,2.2,,0.81,0.004,0.018,599,125,1,599,125,724.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom,Intel Processor N200 CPU-only,0.02,,0.01,0,0.003,80,6,1,80,6,46163.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,0.69,,0.46,0.001,0.006,594,125,1,594,125,1776.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,0.27,,0.17,0.001,0.004,249,71,1,249,71,3633.14,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,2.83,,0.85,0.001,0.013,3144,210,2,1572,105,974.78,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,7.53,,2.16,0,0.018,16954,410,2,8477,205,573.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,11.66,,3.24,0.001,0.022,18718,540,2,9359,270,571.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,45.46,,5.37,0.001,0.065,34000,700,2,17000,350,308.38,FPS,FPS/$,FPS/TDP,msec.,,,,,86.03,38.25 -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,46.14,,,0.002,0.066,21400,700,2,10700,350,301.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,2.8,,0.84,0.001,0.014,2022,200,2,1011,100,977.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,5.32,,1.66,0.002,0.018,2274,300,2,1137,150,622.84,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,32.16,19.74,,0.016,0.214,2000,150,1,2000,150,496.83,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,28.31,18.59,,0.088,0.189,321,150,1,321,150,564.56,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,5.59,,,0.003,0.075,1900,75,1,1900,75,2860.64,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,0.15,0.16,,0.002,0.013,67,12,1,67,12,26172.8,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,0.53,0.54,,0.005,0.035,107,15,1,107,15,7528.46,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,0.6,0.58,,0.001,0.04,490,15,1,490,15,6592.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,1.04,1.1,,0.002,0.023,502,45,1,502,45,3543.23,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,1.07,1.2,,0.002,0.038,480,28,1,480,28,3704.81,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,1.95,1.35,,0.004,0.07,460,28,1,460,28,496.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 iGPU-only,,,,0,0,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,0.15,,0.13,0.002,0.013,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,0.57,,0.28,0.005,0.038,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,0.64,,0.19,0.001,0.043,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,1.45,,0.54,0.003,0.032,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,1.37,,0.65,0.003,0.049,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,,,,0,0,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mask_rcnn_resnet50_atrous_coco,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom,Intel Atom x7425E CPU-only,0.15,,0.07,0.002,0.012,58,12,1,58,12,6974.76,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom,Intel Atom X6425E CPU-only,0.04,,0.02,0,0.004,67,12,1,67,12,20233.9,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom,Intel Celeron 6305E CPU-only,0.16,,0.04,0.001,0.01,107,15,1,107,15,6714.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i3-8100 CPU-only,0.29,,0.18,0.002,0.004,117,65,1,117,65,3375.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i5-10500TE CPU-only,0.42,,0.27,0.002,0.012,214,35,1,214,35,2650.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i5-13600K CPU-only,1.6,,0.52,0.004,0.012,329,125,1,329,125,824.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i5-8500 CPU-only,0.46,,0.28,0.002,0.007,192,65,1,192,65,2348.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,0.7,,0.2,0.002,0.025,426,28,1,426,28,1433.55,FPS,FPS/$,FPS/TDP,msec.,1433.5,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i7-12700H CPU-only,1.15,,0.37,0.002,0.025,502,45,1,502,45,1096.1,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,0.73,,0.23,0.002,0.026,460,28,1,460,28,1854.42,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i7-1360P CPU-only,0.87,,0.3,0.001,0.031,480,28,1,480,28,1670.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i7-8700T CPU-only,0.35,,0.2,0.001,0.01,303,35,1,303,35,3151.5,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i9-10900TE CPU-only,0.46,,0.26,0,0.013,488,35,1,488,35,2598.09,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core,Intel Core i9-13900K CPU-only,2.28,,,0.003,0.018,599,125,1,599,125,977.79,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,0.71,,0.46,0.001,0.005,594,125,1,594,125,1648.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,0.28,,0.17,0.001,0.004,249,71,1,249,71,3510,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,3,,0.88,0,0.014,3144,210,2,1572,105,879.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,35.06,,4.09,0.005,0.07,7750,500,2,3875,250,212.67,FPS,FPS/$,FPS/TDP,msec.,,500.47,,,104.91,30.81 +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,8.02,,2.21,0,0.019,16954,410,2,8477,205,459.83,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,13.22,,3.48,0,0.024,18718,540,2,9359,270,454.05,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,53.51,,5.39,0.001,0.076,34000,700,2,17000,350,244.35,FPS,FPS/$,FPS/TDP,msec.,,,,,81.3,39.05 +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,2.88,,0.85,0.001,0.013,2022,210,2,1011,125,890.41,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,6.69,,1.8,0.002,0.022,2274,300,2,1137,150,503.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,32.06,19.61,,0.016,0.213,2000,150,1,2000,150,498.86,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,28.3,18.4,,0.088,0.188,321,150,1,321,150,565.05,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,5.46,,,0.002,0.072,1900,75,1,1900,75,2926.64,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,0.23,0.19,,0.004,0.019,58,12,1,58,12,15873.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,0.15,0.16,,0.002,0.012,67,12,1,67,12,26117.64,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,0.53,0.54,,0.004,0.035,107,15,1,107,15,7532.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,0.92,0.93,,0.002,0.033,426,28,1,426,28,4360.65,FPS,FPS/$,FPS/TDP,msec.,4360.7,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,0.99,0.99,,0.001,0.022,502,45,1,502,45,4230.23,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,1.26,,0.6,0.003,0.045,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,1.88,1.32,,0.004,0.067,460,28,1,460,28,518.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,1.07,1.2,,0.002,0.038,480,28,1,480,28,3705.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,0.27,,,0.004,0.023,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,0.15,,0.12,0.002,0.013,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,0.58,,0.28,0.005,0.039,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,1.21,,0.43,0.003,0.043,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,1.47,,0.54,0.002,0.032,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mask_rcnn_resnet50_atrous_coco,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,1.36,,0.59,0.002,0.048,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -mobilenet-v2,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,132.49,,81.32,1.977,11.041,67,12,1,67,12,7.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,269.15,,132.84,2.515,17.943,107,15,1,107,15,3.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,534.71,,449.71,4.57,8.226,117,65,1,117,65,2.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,889.45,,491.15,4.156,25.413,214,35,1,214,35,1.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,2953.45,,1344.15,8.977,23.628,329,125,1,329,125,0.7,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,849.34,,652.75,4.424,13.067,192,65,1,192,65,1.39,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,934.4,,303.03,1.907,62.293,490,15,1,490,15,1.24,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,1737.51,,956.64,3.461,38.611,502,45,1,502,45,1.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,1453.3,,714.21,3.028,51.904,480,28,1,480,28,1.23,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,1316.89,560.31,547.04,2.863,47.032,460,28,1,460,28,1.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,735.51,,513.44,2.427,21.015,303,35,1,303,35,1.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,916.72,,594.37,1.879,26.192,488,35,1,488,35,1.54,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,4305.22,,2072.79,7.187,34.442,599,125,1,599,125,0.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom,Intel Processor N200 CPU-only,41.24,,29.81,0.516,6.873,80,6,1,80,6,26.93,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,1437.62,,545.73,2.42,11.501,594,125,1,594,125,1.31,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,519.3,,449.06,2.086,7.314,249,71,1,249,71,2.09,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,5406.61,,1939.84,1.72,25.746,3144,210,2,1572,105,1.46,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,13783.87,,4302.86,0.813,33.619,16954,410,2,8477,205,0.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,22356.74,,6513.39,1.194,41.401,18718,540,2,9359,270,0.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,38481.53,,10875.31,1.132,54.974,34000,700,2,17000,350,0.69,FPS,FPS/$,FPS/TDP,msec.,,,,,0.69,26096.4 -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,41238.8,,,1.927,58.913,21400,700,2,10700,350,0.64,FPS,FPS/$,FPS/TDP,msec.,,,,,0.65, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,5132.91,,1867.89,2.539,25.665,2022,200,2,1011,100,1.49,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,12034.81,,3577.38,5.292,40.116,2274,300,2,1137,150,0.57,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,6724.21,5839.91,,3.362,44.828,2000,150,1,2000,150,2.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,4273.83,3924.74,,13.314,28.492,321,150,1,321,150,3.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,1506.95,1285.93,,0.793,20.093,1900,75,1,1900,75,10.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,194.52,234.06,,2.903,16.21,67,12,1,67,12,20.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,663.23,509.63,,6.198,44.215,107,15,1,107,15,5.59,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,617.61,442.75,,1.26,41.174,490,15,1,490,15,6.25,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,1299.63,900.54,,2.589,28.881,502,45,1,502,45,2.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,1333.28,866.63,,2.778,47.617,480,28,1,480,28,2.9,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,1189.68,1244.08,1205.02,2.586,42.488,460,28,1,460,28,1.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,1780.7,1112.3,1148.51,3.871,63.596,460,28,1,460,28,0.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,58.26,40.26,,0.728,9.71,80,6,1,80,6,67.84,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,236,,159.87,3.522,19.667,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,484.52,,307.99,4.528,32.301,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,1027.78,,268.36,2.098,68.519,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,2041.51,,1028.94,4.067,45.367,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,1598.05,,673.64,3.329,57.073,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,78.85,,44.88,0.986,13.142,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -mobilenet-v2,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,1362.13,,689.62,2.961,48.648,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom,Intel Atom x7425E CPU-only,274.12,,192.62,4.726,22.843,58,12,1,58,12,4.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom,Intel Atom X6425E CPU-only,135.07,,81.3,2.015,11.255,67,12,1,67,12,7.75,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom,Intel Celeron 6305E CPU-only,267.81,,133,2.502,17.854,107,15,1,107,15,3.65,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i3-8100 CPU-only,536.05,,449.99,4.581,8.247,117,65,1,117,65,2.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i5-10500TE CPU-only,897.49,,492.97,4.193,25.642,214,35,1,214,35,1.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i5-13600K CPU-only,2984.14,,1373.16,9.07,23.873,329,125,1,329,125,0.7,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i5-8500 CPU-only,852.28,,661.41,4.438,13.112,192,65,1,192,65,1.38,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,1341.39,,514.37,3.149,47.907,426,28,1,426,28,0.96,FPS,FPS/$,FPS/TDP,msec.,0.96,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i7-12700H CPU-only,1728.5,,929.24,3.443,38.411,502,45,1,502,45,1.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,1265.9,,547.69,2.752,45.211,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i7-1360P CPU-only,1404.1,,,2.925,50.146,480,28,1,480,28,1.24,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i7-8700T CPU-only,735.9,,501.57,2.428,21.025,303,35,1,303,35,1.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i9-10900TE CPU-only,918.44,,593.52,1.882,26.241,488,35,1,488,35,1.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core,Intel Core i9-13900K CPU-only,4079.35,,1947.02,6.81,32.634,599,125,1,599,125,0.62,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,1442.19,,549.37,2.427,11.537,594,125,1,594,125,1.28,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,520.57,,443.13,2.09,7.332,249,71,1,249,71,2.09,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,5419.9,,1946.38,1.723,25.809,3144,210,2,1572,105,1.47,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,27836.3,,8272.19,3.592,55.673,7750,500,2,3875,250,0.49,FPS,FPS/$,FPS/TDP,msec.,,0.67,,,0.51,20665.45 +mobilenet-v2,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,14128.67,,4405.5,0.833,34.46,16954,410,2,8477,205,0.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,22893.56,,6956,1.223,42.395,18718,540,2,9359,270,0.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,39409.64,,10895.42,1.159,56.299,34000,700,2,17000,350,0.69,FPS,FPS/$,FPS/TDP,msec.,,,,,0.69,27400.45 +mobilenet-v2,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,5168.47,,1877.32,2.556,24.611,2022,210,2,1011,125,1.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,12313.33,,3650.65,5.414,41.044,2274,300,2,1137,150,0.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,6772.51,6004.79,,3.386,45.15,2000,150,1,2000,150,2.16,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,4956.11,4491.76,,15.439,33.04,321,150,1,321,150,2.99,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,1528.5,1295.7,,0.804,20.38,1900,75,1,1900,75,10.45,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,446.07,329.85,,7.69,37.172,58,12,1,58,12,8.76,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,196.41,236.29,,2.931,16.367,67,12,1,67,12,20.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,666.74,511.45,,6.231,44.449,107,15,1,107,15,5.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,798.6,604.96,,1.875,28.521,426,28,1,426,28,4.82,FPS,FPS/$,FPS/TDP,msec.,4.82,,,,, +mobilenet-v2,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,1294.8,901.34,,2.579,28.773,502,45,1,502,45,2.99,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,1834.45,1140.24,,3.988,65.516,460,28,1,460,28,0.93,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,2441.4,,1349.39,5.307,87.193,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,3141.27,1604.12,,6.829,112.188,460,28,1,460,28,1.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,1336,860.03,,2.783,47.714,480,28,1,480,28,2.9,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,463.96,,229.85,7.999,38.663,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,239.7,,162.69,3.577,19.975,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,478.98,,308.86,4.476,31.932,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,1435.6,,597.47,3.37,51.271,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,2005.51,,1034.54,3.995,44.566,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +mobilenet-v2,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,1547.01,,691.97,3.222,55.25,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -resnet-50,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,19.91,,8.15,0.297,1.659,67,12,1,67,12,51.18,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,49.72,,14.37,0.465,3.315,107,15,1,107,15,19.84,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,97,,50.16,0.829,1.492,117,65,1,117,65,10.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,144.53,,73.44,0.675,4.129,214,35,1,214,35,8.22,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,557.57,,150.04,1.695,4.461,329,125,1,329,125,3.16,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,152.64,,78.36,0.795,2.348,192,65,1,192,65,7.1,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,171.4,,44.04,0.35,11.427,490,15,1,490,15,6.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,410.11,,111.04,0.817,9.114,502,45,1,502,45,4.01,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,295,,86.91,0.615,10.536,480,28,1,480,28,5.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,267.33,65.59,63.37,0.581,9.548,460,28,1,460,28,7.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,122.4,,61.22,0.404,3.497,303,35,1,303,35,10.01,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,152.06,,72.49,0.312,4.345,488,35,1,488,35,7.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,792.35,,234.66,1.323,6.339,599,125,1,599,125,2.33,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom,Intel Processor N200 CPU-only,6.74,,3.13,0.084,1.123,80,6,1,80,6,159.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,240.68,,96.65,0.405,1.925,594,125,1,594,125,5.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,92.66,,49.31,0.372,1.305,249,71,1,249,71,11.14,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,975.59,,267.7,0.31,4.646,3144,210,2,1572,105,2.96,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,2858.04,,740.71,0.169,6.971,16954,410,2,8477,205,1.57,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,4765.39,,1149.92,0.255,8.825,18718,540,2,9359,270,1.07,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,19939.53,,1662.82,0.586,28.485,34000,700,2,17000,350,1.03,FPS,FPS/$,FPS/TDP,msec.,,,,,1.3,8051.67 -resnet-50,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,22302.7,,,1.042,31.861,21400,700,2,10700,350,0.95,FPS,FPS/$,FPS/TDP,msec.,,,,,1.8, -resnet-50,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,927.42,,256.99,0.459,4.637,2022,200,2,1011,100,3.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,2278.22,,570.63,1.002,7.594,2274,300,2,1137,150,1.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,3467.96,2197.04,,1.734,23.12,2000,150,1,2000,150,4.38,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,2392.89,1537.23,,7.454,15.953,321,150,1,321,150,6.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,640.65,474.69,,0.337,8.542,1900,75,1,1900,75,24.96,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,49.28,52.41,,0.736,4.107,67,12,1,67,12,80.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,212.63,118.08,,1.987,14.175,107,15,1,107,15,18.7,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,201.61,118.21,,0.411,13.441,490,15,1,490,15,19.79,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,386.03,220.01,,0.769,8.578,502,45,1,502,45,10.06,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,391.32,235.78,,0.815,13.976,480,28,1,480,28,9.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,536.32,344.84,344.89,1.166,19.154,460,28,1,460,28,2.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,714.59,125.04,124.41,1.553,25.521,460,28,1,460,28,1.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,14.64,7.81,,0.183,2.44,80,6,1,80,6,272.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,60.46,,32.03,0.902,5.038,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,201.53,,71.24,1.883,13.435,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,233.47,,65.66,0.476,15.565,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,474.5,,145.36,0.945,10.544,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,428.8,,155.74,0.893,15.314,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,18.97,,6.47,0.237,3.162,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -resnet-50,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,338.77,,141.39,0.736,12.099,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom,Intel Atom x7425E CPU-only,45.5,,20.41,0.784,3.792,58,12,1,58,12,23.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom,Intel Atom X6425E CPU-only,19.85,,8.14,0.296,1.654,67,12,1,67,12,51.98,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom,Intel Celeron 6305E CPU-only,49.45,,14.3,0.462,3.296,107,15,1,107,15,19.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i3-8100 CPU-only,97.09,,50.67,0.829,1.493,117,65,1,117,65,10.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i5-10500TE CPU-only,144.95,,73.71,0.677,4.141,214,35,1,214,35,8.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i5-13600K CPU-only,556.17,,151.72,1.69,4.449,329,125,1,329,125,3.14,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i5-8500 CPU-only,150.04,,77.28,0.781,2.308,192,65,1,192,65,7.1,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,224.78,,61.42,0.528,8.028,426,28,1,426,28,4.94,FPS,FPS/$,FPS/TDP,msec.,4.94,,,,, +resnet-50,OV-2024.0,core,Intel Core i7-12700H CPU-only,410.57,,109.86,0.817,9.123,502,45,1,502,45,3.98,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,260.29,,62,0.566,9.296,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i7-1360P CPU-only,295.91,,85.88,0.616,10.568,480,28,1,480,28,5.3,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i7-8700T CPU-only,122.35,,60.87,0.403,3.495,303,35,1,303,35,9.99,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i9-10900TE CPU-only,152.56,,72.58,0.312,4.359,488,35,1,488,35,7.84,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core,Intel Core i9-13900K CPU-only,761.5,,212.5,1.271,6.092,599,125,1,599,125,4.31,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,241.17,,96.12,0.406,1.929,594,125,1,594,125,5.43,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,92.63,,49.51,0.372,1.304,249,71,1,249,71,11.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,972.12,,268.09,0.309,4.629,3144,210,2,1572,105,3.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,15064.63,,1311.15,1.944,30.129,7750,500,2,3875,250,0.64,FPS,FPS/$,FPS/TDP,msec.,,1.25,,,0.85,6829.01 +resnet-50,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,2851.95,,736.95,0.168,6.955,16954,410,2,8477,205,1.62,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,4953.65,,1154.94,0.264,9.173,18718,540,2,9359,270,1.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,20218.9,,1652.8,0.594,28.884,34000,700,2,17000,350,1.04,FPS,FPS/$,FPS/TDP,msec.,,,,,1.27,8214.86 +resnet-50,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,926.6,,254.87,0.458,4.412,2022,210,2,1011,125,3.12,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,2271.82,,565.27,0.999,7.572,2274,300,2,1137,150,1.79,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,3481.92,2181.16,,1.74,23.212,2000,150,1,2000,150,4.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,2876.57,1840.99,,8.961,19.177,321,150,1,321,150,5.51,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,647.79,462.11,,0.34,8.637,1900,75,1,1900,75,24.8,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,109.55,60.39,,1.888,9.129,58,12,1,58,12,35.67,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,49.29,52.42,,0.735,4.107,67,12,1,67,12,80.83,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,213.75,117.98,,1.997,14.25,107,15,1,107,15,18.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,285.41,177.79,,0.67,10.193,426,28,1,426,28,13.65,FPS,FPS/$,FPS/TDP,msec.,13.65,,,,, +resnet-50,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,378.17,215.59,,0.753,8.403,502,45,1,502,45,10.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,724.94,343.65,,1.576,25.891,460,28,1,460,28,2.07,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,519.62,,218.44,1.13,18.558,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,869.54,415.99,,1.89,31.055,460,28,1,460,28,2.4,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,392.39,236.26,,0.817,14.014,480,28,1,480,28,9.85,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,126.12,,35.15,2.174,10.51,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,60.46,,32.13,0.902,5.038,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,201.75,,71.24,1.885,13.45,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,382.45,,122.91,0.898,13.659,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,477.93,,143.27,0.952,10.62,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +resnet-50,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,423.7,,140.64,0.882,15.132,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -ssd-resnet34-1200,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0.33,,0.13,0.005,0.028,67,12,1,67,12,3010.22,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,0.89,,0.22,0.008,0.059,107,15,1,107,15,1121.75,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,1.67,,0.96,0.014,0.026,117,65,1,117,65,597.83,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,2.41,,1.39,0.011,0.069,214,35,1,214,35,459.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,8.94,,2.66,0.027,0.072,329,125,1,329,125,128.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,2.63,,1.48,0.014,0.04,192,65,1,192,65,396.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,2.93,,0.76,0.006,0.195,490,15,1,490,15,321.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,6.7,,1.99,0.013,0.149,502,45,1,502,45,173.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,4.92,,1.55,0.01,0.176,480,28,1,480,28,259.43,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,4.3,1.18,1.16,0.009,0.154,460,28,1,460,28,263.48,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,2,,1.12,0.007,0.057,303,35,1,303,35,569.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,2.58,,1.43,0.005,0.074,488,35,1,488,35,408.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,13.14,,4.19,0.022,0.105,599,125,1,599,125,99.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom,Intel Processor N200 CPU-only,0.11,,0.05,0.001,0.018,80,6,1,80,6,8970.22,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,4.33,,2.44,0.007,0.035,594,125,1,594,125,240.14,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,1.59,,0.91,0.006,0.022,249,71,1,249,71,625.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,17.64,,4.56,0.006,0.084,3144,210,2,1572,105,115.9,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,57.51,,14.44,0.003,0.14,16954,410,2,8477,205,36.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,77.38,,19.93,0.004,0.143,18718,540,2,9359,270,70.46,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,446.37,,31.27,0.013,0.638,34000,700,2,17000,350,8.72,FPS,FPS/$,FPS/TDP,msec.,,,,,15.37,215.39 -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,531.03,,,0.025,0.759,21400,700,2,10700,350,8.57,FPS,FPS/$,FPS/TDP,msec.,,,,,27.48, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,16.77,,4.34,0.008,0.084,2022,200,2,1011,100,121.76,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,42.17,,10.48,0.019,0.141,2274,300,2,1137,150,61.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,211.8,110.01,,0.106,1.412,2000,150,1,2000,150,75.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,147.65,81.51,,0.46,0.984,321,150,1,321,150,107.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,30.74,15.55,,0.016,0.41,1900,75,1,1900,75,520.59,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,1.19,1.19,,0.018,0.099,67,12,1,67,12,3359.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,5.16,2.78,,0.048,0.344,107,15,1,107,15,774.5,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,5.44,3.13,,0.011,0.363,490,15,1,490,15,740.5,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,9.72,5.72,,0.019,0.216,502,45,1,502,45,380.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,11.14,6.43,,0.023,0.398,480,28,1,480,28,357.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,17.94,10.35,10.32,0.039,0.641,460,28,1,460,28,57.46,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,0.28,0.16,,0.004,0.047,80,6,1,80,6,13818.59,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,0.33,,0.13,0.005,0.028,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,0.89,,0.22,0.008,0.059,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,2.97,,0.76,0.006,0.198,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,6.58,,2,0.013,0.146,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,4.9,,1.55,0.01,0.175,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,0.11,,0.05,0.001,0.018,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd-resnet34-1200,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,4.23,,1.15,0.009,0.151,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,atom,Intel Atom x7425E CPU-only,0.76,,0.35,0.013,0.063,58,12,1,58,12,1330.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,atom,Intel Celeron 6305E CPU-only,0.88,,0.22,0.008,0.059,107,15,1,107,15,1136.27,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i3-8100 CPU-only,1.67,,0.96,0.014,0.025,117,65,1,117,65,599.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i5-10500TE CPU-only,2.42,,1.39,0.011,0.069,214,35,1,214,35,457.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i5-13600K CPU-only,8.95,,2.66,0.027,0.071,329,125,1,329,125,130.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i5-8500 CPU-only,2.59,,1.45,0.013,0.039,192,65,1,192,65,397.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,3.96,,1.02,0.009,0.141,426,28,1,426,28,250.1,FPS,FPS/$,FPS/TDP,msec.,250.1,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i7-12700H CPU-only,6.43,,1.99,0.012,0.142,502,45,1,502,45,174.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,4.07,,1.16,0.009,0.145,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i7-1360P CPU-only,4.91,,1.54,0.01,0.175,480,28,1,480,28,260.33,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i7-8700T CPU-only,2,,1.12,0.006,0.057,303,35,1,303,35,564.49,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i9-10900TE CPU-only,2.59,,1.43,0.005,0.074,488,35,1,488,35,431.94,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core,Intel Core i9-13900K CPU-only,11.82,,3.83,0.019,0.094,599,125,1,599,125,190.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,4.34,,2.44,0.007,0.034,594,125,1,594,125,237.48,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,1.59,,0.91,0.006,0.022,249,71,1,249,71,624.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,17.64,,4.56,0.005,0.084,3144,210,2,1572,105,115.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,366.83,,23.68,0.047,0.734,7750,500,2,3875,250,0.84,FPS,FPS/$,FPS/TDP,msec.,,3.25,,,1.17,168.65 +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,57.7,,14.89,0.003,0.14,16954,410,2,8477,205,35.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,78.11,,20.79,0.004,0.144,18718,540,2,9359,270,62.06,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,453.04,,31.23,0.013,0.647,34000,700,2,17000,350,8.07,FPS,FPS/$,FPS/TDP,msec.,,,,,15.26,215.29 +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,16.75,,4.33,0.008,0.079,2022,210,2,1011,125,121.78,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,42.61,,10.55,0.018,0.142,2274,300,2,1137,150,53.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,214.1,110.81,,0.107,1.427,2000,150,1,2000,150,74.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,155.34,82.39,,0.483,1.035,321,150,1,321,150,102.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,30.24,15.26,,0.015,0.403,1900,75,1,1900,75,501.16,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,2.06,1.11,,0.035,0.172,58,12,1,58,12,1814.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,1.19,1.19,,0.017,0.099,67,12,1,67,12,3358.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,5.15,2.78,,0.048,0.343,107,15,1,107,15,775.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,8.08,4.7,,0.019,0.288,426,28,1,426,28,478.82,FPS,FPS/$,FPS/TDP,msec.,478.8,,,,, +ssd-resnet34-1200,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,9.57,5.48,,0.019,0.212,502,45,1,502,45,380.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,4.06,,1.08,0.009,0.145,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,17.19,10.32,,0.037,0.614,460,28,1,460,28,59.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,11.07,6.39,,0.023,0.395,480,28,1,480,28,359.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,0.76,,0.35,0.013,0.063,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,0.88,,0.22,0.008,0.059,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,3.96,,1.02,0.009,0.141,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,6.4,,1.97,0.012,0.142,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd-resnet34-1200,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,4.92,,1.53,0.01,0.175,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,45.14,,21.59,0.674,3.762,67,12,1,67,12,23.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,108.06,,36.79,1.01,7.204,107,15,1,107,15,9.1,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,211.79,,121.59,1.81,3.258,117,65,1,117,65,4.96,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,327.38,,170.56,1.53,9.354,214,35,1,214,35,3.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,1082.39,,385.32,3.29,8.659,329,125,1,329,125,1.45,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,337.55,,193.1,1.758,5.193,192,65,1,192,65,3.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,383.28,,98.77,0.782,25.552,490,15,1,490,15,2.86,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,771.49,,283.56,1.537,17.144,502,45,1,502,45,1.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,597.27,,216.26,1.244,21.331,480,28,1,480,28,2.64,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,502.13,168.22,161.93,1.092,17.933,460,28,1,460,28,3.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,275.49,,157.15,0.909,7.871,303,35,1,303,35,4.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,354.08,,185.69,0.726,10.117,488,35,1,488,35,3.39,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,1602.25,,606.71,2.675,12.818,599,125,1,599,125,1.16,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom,Intel Processor N200 CPU-only,14.52,,7.97,0.182,2.42,80,6,1,80,6,71.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,574.71,,220.78,0.968,4.598,594,125,1,594,125,2.38,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,202.68,,125.66,0.814,2.855,249,71,1,249,71,5.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,2063.1,,634.84,0.656,9.824,3144,210,2,1572,105,1.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,5593.37,,1619.29,0.33,13.642,16954,410,2,8477,205,1.12,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,10049.51,,2139.64,0.537,18.61,18718,540,2,9359,270,0.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,22970.51,,3625.57,0.676,32.815,34000,700,2,17000,350,0.84,FPS,FPS/$,FPS/TDP,msec.,,,,,1,12379.15 -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,24977.3,,,1.167,35.682,21400,700,2,10700,350,0.82,FPS,FPS/$,FPS/TDP,msec.,,,,,1, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,1961.08,,612.9,0.97,9.805,2022,200,2,1011,100,1.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,4817.95,,1245.14,2.119,16.06,2274,300,2,1137,150,0.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,4068.08,3482.47,,2.034,27.121,2000,150,1,2000,150,3.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,2923.33,2467.73,,9.107,19.489,321,150,1,321,150,5.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,860.45,705.96,,0.453,11.473,1900,75,1,1900,75,18.85,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,94.93,99.46,,1.417,7.911,67,12,1,67,12,41.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,408.68,220.54,,3.819,27.245,107,15,1,107,15,9.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,367.94,218.91,,0.751,24.529,490,15,1,490,15,10.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,757.28,408.06,,1.509,16.828,502,45,1,502,45,5.01,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,743.73,414.72,,1.549,26.562,480,28,1,480,28,5.22,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,818.42,710.97,708.69,1.779,29.229,460,28,1,460,28,1.48,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,29.05,15.33,,0.363,4.842,80,6,1,80,6,136.57,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,114.45,,64.79,1.708,9.538,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,305.66,,136.02,2.857,20.377,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,468.72,,129.8,0.957,31.248,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,939.71,,348.65,1.872,20.882,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,757.16,,298.7,1.577,27.041,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,36.16,,14.97,0.452,6.027,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -ssd_mobilenet_v1_coco,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,684.57,,289.92,1.488,24.449,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom,Intel Atom x7425E CPU-only,97.3,,50.85,1.677,8.108,58,12,1,58,12,10.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom,Intel Atom X6425E CPU-only,45.56,,21.61,0.68,3.797,67,12,1,67,12,22.8,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom,Intel Celeron 6305E CPU-only,107.32,,36.73,1.003,7.154,107,15,1,107,15,9.25,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i3-8100 CPU-only,211.66,,121.94,1.809,3.256,117,65,1,117,65,4.95,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i5-10500TE CPU-only,327.82,,170.58,1.531,9.366,214,35,1,214,35,3.63,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i5-13600K CPU-only,1085.31,,388.69,3.298,8.682,329,125,1,329,125,1.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i5-8500 CPU-only,331.43,,192.47,1.726,5.099,192,65,1,192,65,3.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,515.77,,147.2,1.211,18.42,426,28,1,426,28,2.2,FPS,FPS/$,FPS/TDP,msec.,2.2,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i7-12700H CPU-only,770.38,,282.86,1.534,17.119,502,45,1,502,45,1.98,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,498.41,,161.67,1.084,17.8,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i7-1360P CPU-only,591.07,,218.19,1.231,21.109,480,28,1,480,28,2.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i7-8700T CPU-only,274.87,,156.59,0.907,7.853,303,35,1,303,35,4.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i9-10900TE CPU-only,354.87,,187.34,0.727,10.139,488,35,1,488,35,3.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core,Intel Core i9-13900K CPU-only,1456.52,,554.6,2.431,11.652,599,125,1,599,125,1.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,574.51,,222.62,0.967,4.596,594,125,1,594,125,2.37,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,202.54,,124.91,0.813,2.852,249,71,1,249,71,5.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,2092.42,,633.85,0.665,9.963,3144,210,2,1572,105,1.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,18001.37,,3148.15,2.323,36.003,7750,500,2,3875,250,13.08,FPS,FPS/$,FPS/TDP,msec.,,95.54,,,25.67,9932.06 +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,5885.37,,1654.07,0.347,14.354,16954,410,2,8477,205,1.1,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,10335.35,,2211.74,0.552,19.139,18718,540,2,9359,270,0.67,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,23781.35,,3555.28,0.699,33.973,34000,700,2,17000,350,0.83,FPS,FPS/$,FPS/TDP,msec.,,,,,0.99,12484.42 +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,1993.93,,611.29,0.986,9.494,2022,210,2,1011,125,1.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,4882.27,,1249.03,2.146,16.274,2274,300,2,1137,150,0.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,4079.89,3451.42,,2.039,27.199,2000,150,1,2000,150,3.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,3320.97,3008.93,,10.345,22.139,321,150,1,321,150,4.43,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,899.92,726.95,,0.473,11.999,1900,75,1,1900,75,17.86,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,223.85,130.1,,3.859,18.654,58,12,1,58,12,17.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,95.54,99.6,,1.426,7.962,67,12,1,67,12,41.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,411.65,221.33,,3.847,27.443,107,15,1,107,15,9.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,502.82,315.73,,1.18,17.958,426,28,1,426,28,7.69,FPS,FPS/$,FPS/TDP,msec.,7.69,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,757.57,405.43,,1.509,16.835,502,45,1,502,45,4.99,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,22.21,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,619.83,,301.57,1.347,22.137,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,,685,,0,0,460,28,1,460,28,1.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,740.41,416.1,,1.542,26.443,480,28,1,480,28,5.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,245.44,,79.49,4.231,20.453,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,114.62,,65.09,1.71,9.552,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,299.67,,137.06,2.8,19.978,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,698.33,,250.54,1.639,24.94,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,927.37,,345.68,1.847,20.608,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +ssd_mobilenet_v1_coco,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,758.87,,286.7,1.58,27.102,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0.48,,0.05,0.007,0.04,67,12,1,67,12,2094.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,1.48,,0.37,0.014,0.099,107,15,1,107,15,673.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,2.42,,1.54,0.021,0.037,117,65,1,117,65,427.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,3.6,,2.27,0.017,0.103,214,35,1,214,35,324.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,12.64,,4.35,0.038,0.101,329,125,1,329,125,97.94,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,3.77,,2.39,0.02,0.058,192,65,1,192,65,259.27,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,4.92,,1.22,0.01,0.328,490,15,1,490,15,206.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,9.29,,3.23,0.019,0.206,502,45,1,502,45,128.76,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,6.93,,2.52,0.014,0.248,480,28,1,480,28,193.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,,1.93,1.92,0,0,460,28,1,460,28,98.75,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,3.01,,1.84,0.01,0.086,303,35,1,303,35,392.76,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,3.74,,2.33,0.008,0.107,488,35,1,488,35,286.39,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,18.7,,6.92,0.031,0.15,599,125,1,599,125,73.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom,Intel Processor N200 CPU-only,0.17,,0.08,0.002,0.028,80,6,1,80,6,5851.1,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,6.03,,3.94,0.01,0.048,594,125,1,594,125,182.12,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,2.32,,1.47,0.009,0.033,249,71,1,249,71,440.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,29.19,,7.31,0.009,0.139,3144,210,2,1572,105,72.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,92.11,,21.29,0.005,0.225,16954,410,2,8477,205,24.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,121.92,,29.02,0.007,0.226,18718,540,2,9359,270,48.28,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,584.72,,47.75,0.017,0.835,34000,700,2,17000,350,8.54,FPS,FPS/$,FPS/TDP,msec.,,,,,15.32,221.53 -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,,9.31,9.31,0,0,21400,700,2,10700,350,17.05,FPS,FPS/$,FPS/TDP,msec.,,,,,26.27, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,27.74,,6.95,0.014,0.139,2022,200,2,1011,100,74.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,62.28,,15.89,0.027,0.208,2274,300,2,1137,150,45.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,299.69,202.01,,0.15,1.998,2000,150,1,2000,150,53.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,252.37,184.19,,0.786,1.682,321,150,1,321,150,63.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,55.52,34.29,,0.029,0.74,1900,75,1,1900,75,288.3,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,0.98,1.99,,0.015,0.082,67,12,1,67,12,4042.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,8.4,4.44,,0.079,0.56,107,15,1,107,15,475.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,9.67,5.01,,0.02,0.645,490,15,1,490,15,416.45,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,17.14,8.34,,0.034,0.381,502,45,1,502,45,217.47,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,19.44,10.16,,0.041,0.694,480,28,1,480,28,204.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,,18.69,18.66,0,0,460,28,1,460,28,566.33,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,50.15,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,0.46,0.25,,0.006,0.077,80,6,1,80,6,8685.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,1.28,,0.81,0.019,0.107,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,8.94,,2.56,0.084,0.596,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,7.57,,2.06,0.015,0.505,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,14.07,,4.65,0.028,0.313,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,20.77,,6.02,0.043,0.742,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,0.54,,0.19,0.007,0.09,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -unet-camvid-onnx-0001,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,7.7,,7.69,0.017,0.275,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom,Intel Atom x7425E CPU-only,1.16,,0.58,0.02,0.096,58,12,1,58,12,891.46,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom,Intel Atom X6425E CPU-only,0.48,,0.05,0.007,0.04,67,12,1,67,12,2092.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom,Intel Celeron 6305E CPU-only,1.47,,0.37,0.013,0.098,107,15,1,107,15,704.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i3-8100 CPU-only,2.42,,1.54,0.02,0.037,117,65,1,117,65,427.14,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i5-10500TE CPU-only,3.61,,2.27,0.016,0.103,214,35,1,214,35,323.41,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i5-13600K CPU-only,12.62,,4.37,0.038,0.1,329,125,1,329,125,96.94,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i5-8500 CPU-only,3.75,,2.34,0.019,0.057,192,65,1,192,65,280.77,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,6.57,,1.66,0.015,0.235,426,28,1,426,28,155.83,FPS,FPS/$,FPS/TDP,msec.,155.8,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i7-12700H CPU-only,9.13,,3.23,0.018,0.203,502,45,1,502,45,130.42,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,1.92,,1.86,0.004,0.069,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i7-1360P CPU-only,6.88,,2.54,0.014,0.245,480,28,1,480,28,194.3,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i7-8700T CPU-only,3,,1.83,0.009,0.085,303,35,1,303,35,387.91,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i9-10900TE CPU-only,3.73,,2.33,0.007,0.106,488,35,1,488,35,340.74,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core,Intel Core i9-13900K CPU-only,16.95,,6.28,0.028,0.135,599,125,1,599,125,142.53,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,6.18,,3.94,0.01,0.049,594,125,1,594,125,180.21,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,2.32,,1.47,0.009,0.032,249,71,1,249,71,441.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,29.18,,7.28,0.009,0.138,3144,210,2,1572,105,71.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,400.71,,37.81,0.052,0.801,7750,500,2,3875,250,14.98,FPS,FPS/$,FPS/TDP,msec.,,67.18,,,23.32,177.24 +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,94.98,,21.81,0.005,0.231,16954,410,2,8477,205,23.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,127.99,,31.87,0.006,0.237,18718,540,2,9359,270,42.93,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,,,47.98,0.015,0.769,34000,700,2,17000,350,9.36,FPS,FPS/$,FPS/TDP,msec.,,,,,14.43,221.36 +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,27.7,,6.93,0.013,0.131,2022,210,2,1011,125,74.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,69.65,,16.12,0.03,0.232,2274,300,2,1137,150,37.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,302.07,205.64,,0.151,2.013,2000,150,1,2000,150,52.68,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,275.91,188.43,,0.859,1.839,321,150,1,321,150,57.8,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,55.01,33.8,,0.028,0.733,1900,75,1,1900,75,290.97,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,3.41,1.89,,0.058,0.284,58,12,1,58,12,1169.36,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,0.98,1.99,,0.014,0.082,67,12,1,67,12,4037.17,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,8.4,4.44,,0.078,0.56,107,15,1,107,15,475.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,14.73,7.58,,0.035,0.526,426,28,1,426,28,271.02,FPS,FPS/$,FPS/TDP,msec.,271,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,17.02,8.33,,0.033,0.378,502,45,1,502,45,217.5,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,,,,0,0,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,7.79,,7.68,0.017,0.278,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,18.33,18.24,,0.04,0.655,460,28,1,460,28,30.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,19.44,10.14,,0.04,0.694,480,28,1,480,28,204.9,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,3.81,,0.98,0.065,0.318,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,1.29,,0.79,0.019,0.107,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,8.91,,2.56,0.083,0.594,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,15.96,,4.13,0.037,0.57,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,13.91,,4.49,0.027,0.309,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +unet-camvid-onnx-0001,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,20.27,,5.87,0.042,0.724,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -yolo_v3_tiny,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,22.88,,10.3,0.341,1.907,67,12,1,67,12,44.85,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,53.57,,17.95,0.501,3.571,107,15,1,107,15,18.4,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,111.63,,62.53,0.954,1.717,117,65,1,117,65,9.05,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,167.21,,89.97,0.781,4.777,214,35,1,214,35,6.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,638.97,,205.86,1.942,5.112,329,125,1,329,125,2.41,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,175.87,,95.78,0.916,2.706,192,65,1,192,65,5.49,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,183.33,,54.15,0.374,12.222,490,15,1,490,15,5.79,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,452.05,,140.56,0.9,10.046,502,45,1,502,45,3.19,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,331.9,,107.17,0.691,11.854,480,28,1,480,28,4.51,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,280.59,82.27,80.13,0.61,10.021,460,28,1,460,28,5.42,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,137.5,,74.93,0.454,3.929,303,35,1,303,35,8.24,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,179.17,,91.81,0.367,5.119,488,35,1,488,35,6.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,892.55,,297.02,1.49,7.14,599,125,1,599,125,1.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom,Intel Processor N200 CPU-only,7.78,,4.08,0.097,1.297,80,6,1,80,6,137.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,297.54,,146.02,0.501,2.38,594,125,1,594,125,4.01,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,106.05,,61.34,0.426,1.494,249,71,1,249,71,9.49,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,1046.7,,336.77,0.333,4.984,3144,210,2,1572,105,2.54,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,2769.83,,904.83,0.163,6.756,16954,410,2,8477,205,1.23,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,4504.11,,1330.81,0.241,8.341,18718,540,2,9359,270,0.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,13567.29,,2133.66,0.399,19.382,34000,700,2,17000,350,1.09,FPS,FPS/$,FPS/TDP,msec.,,,,,0.9,8200.74 -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,,,,0,0,21400,700,2,10700,350,0.95,FPS,FPS/$,FPS/TDP,msec.,,,,,0.99, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,1004.3,,321.57,0.497,5.022,2022,200,2,1011,100,2.64,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,2194.78,,696.02,0.965,7.316,2274,300,2,1137,150,1.34,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,3849.02,2821.45,,1.925,25.66,2000,150,1,2000,150,3.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,2615.29,2194.98,,8.147,17.435,321,150,1,321,150,6.05,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,623.04,647.65,,0.328,8.307,1900,75,1,1900,75,25.65,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,66.95,67.55,,0.999,5.579,67,12,1,67,12,59.25,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,291.37,157.24,,2.723,19.425,107,15,1,107,15,13.62,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,304.98,167.62,,0.622,20.332,490,15,1,490,15,13.18,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,560,297.78,,1.116,12.444,502,45,1,502,45,6.47,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,609.71,340.4,,1.27,21.775,480,28,1,480,28,6.16,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,819.11,488.5,498.83,1.781,29.254,460,28,1,460,28,1.51,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,354.22,247.71,247.45,0.77,12.651,460,28,1,460,28,3.86,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,18.64,9.81,,0.233,3.107,80,6,1,80,6,213.45,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,78.08,,40.44,1.165,6.507,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,262.42,,93.35,2.453,17.495,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,257.03,,81.4,0.525,17.135,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,535.6,,185.94,1.067,11.902,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,512.4,,199.04,1.068,18.3,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,23.42,,8.47,0.293,3.903,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v3_tiny,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,350.67,,135.91,0.762,12.524,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom,Intel Atom x7425E CPU-only,52.61,,25.76,0.907,4.384,58,12,1,58,12,20.24,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom,Intel Atom X6425E CPU-only,22.82,,10.27,0.34,1.902,67,12,1,67,12,44.92,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom,Intel Celeron 6305E CPU-only,53.02,,17.8,0.495,3.535,107,15,1,107,15,18.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i3-8100 CPU-only,111.32,,62.85,0.951,1.712,117,65,1,117,65,9.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i5-10500TE CPU-only,167.22,,89.81,0.781,4.777,214,35,1,214,35,6.77,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i5-13600K CPU-only,633.91,,205.57,1.926,5.071,329,125,1,329,125,2.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i5-8500 CPU-only,172.29,,95.1,0.897,2.65,192,65,1,192,65,6.07,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,244.4,,77.01,0.574,8.728,426,28,1,426,28,4.28,FPS,FPS/$,FPS/TDP,msec.,4.28,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i7-12700H CPU-only,456.81,,139.59,0.909,10.151,502,45,1,502,45,3.18,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,276.05,,81.29,0.6,9.859,460,28,1,460,28,5.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i7-1360P CPU-only,329.44,,107.27,0.686,11.765,480,28,1,480,28,4.5,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i7-8700T CPU-only,136.8,,74.8,0.451,3.908,303,35,1,303,35,8.22,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i9-10900TE CPU-only,179.54,,91.78,0.367,5.129,488,35,1,488,35,6.52,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core,Intel Core i9-13900K CPU-only,864.66,,290.76,1.443,6.917,599,125,1,599,125,3.32,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,298.93,,146.65,0.503,2.391,594,125,1,594,125,3.99,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,105.74,,61.64,0.424,1.489,249,71,1,249,71,9.48,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,1044.7,,337.54,0.332,4.974,3144,210,2,1572,105,2.62,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,9162.59,,1678.19,1.182,18.325,7750,500,2,3875,250,0.75,FPS,FPS/$,FPS/TDP,msec.,,1.76,,,0.69,7567.48 +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,2795.48,,899.98,0.164,6.818,16954,410,2,8477,205,1.3,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,4562.15,,1355.7,0.243,8.448,18718,540,2,9359,270,0.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,,,2117.71,0.348,16.921,34000,700,2,17000,350,0.92,FPS,FPS/$,FPS/TDP,msec.,,,,,0.85,8327.95 +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,1000.95,,320.86,0.495,4.766,2022,210,2,1011,125,2.7,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,2216.62,,698.4,0.974,7.388,2274,300,2,1137,150,1.4,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,3904.69,2886.21,,1.952,26.031,2000,150,1,2000,150,3.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,3070.56,2399.91,,9.565,20.47,321,150,1,321,150,4.86,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,629.11,647.77,,0.331,8.388,1900,75,1,1900,75,25.39,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,142.76,74.78,,2.461,11.896,58,12,1,58,12,27.39,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,67.02,67.61,,1,5.585,67,12,1,67,12,59.22,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,291.7,157.37,,2.726,19.447,107,15,1,107,15,13.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,440.19,249,,1.033,15.721,426,28,1,426,28,8.81,FPS,FPS/$,FPS/TDP,msec.,8.81,,,,, +yolo_v3_tiny,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,527.6,283.51,,1.051,11.724,502,45,1,502,45,7.67,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,375.11,293.96,,0.815,13.397,460,28,1,460,28,2.93,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,558.6,,234.83,1.214,19.95,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,864.45,,,1.879,30.873,460,28,1,460,28,1.51,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,600.02,339.97,,1.25,21.429,480,28,1,480,28,6.13,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,150.24,,41.41,2.59,12.52,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,78.19,,40.49,1.167,6.515,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,260.69,,93.04,2.436,17.379,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,464.51,,155.87,1.09,16.59,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,535.29,,179.62,1.066,11.895,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v3_tiny,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,512.14,,182.44,1.066,18.29,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -yolo_v8n,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,10.37,,5.12,0.155,0.864,67,12,1,67,12,99.89,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,24.37,,9.57,0.228,1.625,107,15,1,107,15,40.56,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,53.56,,32.82,0.458,0.824,117,65,1,117,65,19.21,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,81.62,,46.66,0.381,2.332,214,35,1,214,35,13.82,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,270.31,,102.75,0.822,2.162,329,125,1,329,125,5.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,84.9,,50.62,0.442,1.306,192,65,1,192,65,12.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,73.05,,26.72,0.149,4.87,490,15,1,490,15,13.98,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,185.07,,74.24,0.369,4.113,502,45,1,502,45,7.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,141.55,,56.91,0.295,5.055,480,28,1,480,28,9.7,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,120.2,45.13,44.81,0.261,4.293,460,28,1,460,28,15.21,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,71.09,,42.13,0.235,2.031,303,35,1,303,35,16.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,90.61,,51.34,0.186,2.589,488,35,1,488,35,12.7,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,393.63,,158.58,0.657,3.149,599,125,1,599,125,4.16,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom,Intel Processor N200 CPU-only,3.25,,1.93,0.041,0.542,80,6,1,80,6,316.45,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,134.99,,72.07,0.227,1.08,594,125,1,594,125,9.27,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,52.22,,32.7,0.21,0.735,249,71,1,249,71,19.48,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,453.2,,173.94,0.144,2.158,3144,210,2,1572,105,6.02,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,1004.98,,444.38,0.059,2.451,16954,410,2,8477,205,3.6,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,1701.02,,545.42,0.091,3.15,18718,540,2,9359,270,2.42,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,2884.7,,996.47,0.085,4.121,34000,700,2,17000,350,3.65,FPS,FPS/$,FPS/TDP,msec.,,,,,2.7,2480.72 -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,3687.45,,,0.172,5.268,21400,700,2,10700,350,3.54,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,434.86,,164.98,0.215,2.174,2022,200,2,1011,100,6.29,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,854.89,,340.17,0.376,2.85,2274,300,2,1137,150,3.44,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,1559.93,1436.34,,0.78,10.4,2000,150,1,2000,150,10,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,1025.8,1024.43,,3.196,6.839,321,150,1,321,150,15.41,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,253.42,264.6,,0.133,3.379,1900,75,1,1900,75,63.08,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,32.87,34.58,,0.491,2.739,67,12,1,67,12,121.05,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,123.47,82.07,,1.154,8.231,107,15,1,107,15,32.23,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,114.1,76.66,,0.233,7.607,490,15,1,490,15,34.96,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,218.78,145.39,,0.436,4.862,502,45,1,502,45,17.84,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,220.17,152.12,,0.459,7.863,480,28,1,480,28,17.73,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,361.59,258.53,255.79,0.786,12.914,460,28,1,460,28,3.31,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,115.76,67.94,68.58,0.252,4.134,460,28,1,460,28,10.04,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,8.36,5.55,,0.105,1.393,80,6,1,80,6,477.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,37.44,,22.48,0.559,3.12,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,115.18,,50.49,1.076,7.679,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,103.47,,40.21,0.211,6.898,490,15,1,490,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,238.69,,97.19,0.475,5.304,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,229.23,,92.43,0.478,8.187,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,10.39,,4.64,0.13,1.732,80,6,1,80,6,,FPS,FPS/$,FPS/TDP,msec.,,,,,, -yolo_v8n,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,191.68,,110.97,0.417,6.846,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +begin_rec, , , ,,,,,,,,,,, ,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom,Intel Atom x7425E CPU-only,21.47,,12.56,0.37,1.789,58,12,1,58,12,48.49,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom,Intel Atom X6425E CPU-only,10.27,,5.13,0.153,0.856,67,12,1,67,12,100.61,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom,Intel Celeron 6305E CPU-only,24.06,,9.55,0.224,1.604,107,15,1,107,15,42.3,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i3-8100 CPU-only,53.44,,32.99,0.456,0.822,117,65,1,117,65,19.23,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i5-10500TE CPU-only,80.51,,47,0.376,2.3,214,35,1,214,35,13.83,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i5-13600K CPU-only,270.91,,103.19,0.823,2.167,329,125,1,329,125,5.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i5-8500 CPU-only,83.67,,50.14,0.435,1.287,192,65,1,192,65,12.35,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i7-1185G7 CPU-only,110.22,,40.56,0.259,3.936,426,28,1,426,28,10.39,FPS,FPS/$,FPS/TDP,msec.,10.39,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i7-12700H CPU-only,184.25,,74.61,0.367,4.094,502,45,1,502,45,6.87,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core Ultra7-165H CPU-only,115.88,,43.03,0.252,4.139,460,28,1,460,28,15.93,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i7-1360P CPU-only,138.35,,56.72,0.288,4.941,480,28,1,480,28,9.66,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i7-8700T CPU-only,71.15,,42.1,0.234,2.032,303,35,1,303,35,16.54,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i9-10900TE CPU-only,90.86,,51.9,0.186,2.596,488,35,1,488,35,12.88,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core,Intel Core i9-13900K CPU-only,352.24,,145.68,0.588,2.817,599,125,1,599,125,7.01,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,xeon,Intel Xeon W1290P CPU-only,135.16,,72.57,0.227,1.081,594,125,1,594,125,9.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,xeon,Intel Xeon E-2124G CPU-only,52.12,,32.77,0.209,0.734,249,71,1,249,71,19.54,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,xeon,Intel Xeon Gold 5218T CPU-only,450.75,,172.78,0.143,2.146,3144,210,2,1572,105,6.01,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,2002.3,,808.04,0.258,4.005,7750,500,2,3875,250,2.68,FPS,FPS/$,FPS/TDP,msec.,,3.64,,,2.31,2156.54 +yolo_v8n,OV-2024.0,xeon,Intel Xeon Platinum 8270 CPU-only,972.93,,452.63,0.057,2.373,16954,410,2,8477,205,3.55,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,1691.96,,587.63,0.09,3.133,18718,540,2,9359,270,2.37,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,,,996.11,0.076,3.692,34000,700,2,17000,350,3.33,FPS,FPS/$,FPS/TDP,msec.,,,,,2.65,2524.69 +yolo_v8n,OV-2024.0,xeon,Intel Xeon Silver 4216R CPU-only,428.43,,164.48,0.211,2.04,2022,210,2,1011,125,6.25,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,xeon,Intel Xeon Silver 4316 CPU-only,850.44,,341.14,0.373,2.834,2274,300,2,1137,150,3.72,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,1562.45,1437.59,,0.781,10.416,2000,150,1,2000,150,10.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,1315.9,1190.85,,4.099,8.772,321,150,1,321,150,12.03,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,accel,Intel Data Center GPU Flex 140 dGPU,251.75,264.86,,0.132,3.356,1900,75,1,1900,75,63.51,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom-iGPU,Intel Atom x7425E iGPU-only,61.29,40.76,,1.056,5.108,58,12,1,58,12,64.32,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom-iGPU,Intel Atom X6425E iGPU-only,32.93,34.62,,0.491,2.744,67,12,1,67,12,120.9,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom-iGPU,Intel Celeron 6305E iGPU-only,124.01,82.33,,1.158,8.267,107,15,1,107,15,32.11,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-iGPU,Intel Core i7-1185G7 iGPU-only,169.38,115.34,,0.398,6.049,426,28,1,426,28,23.16,FPS,FPS/$,FPS/TDP,msec.,23.16,,,,, +yolo_v8n,OV-2024.0,core-iGPU,Intel Core i7-12700H iGPU-only,218.02,145.47,,0.434,4.844,502,45,1,502,45,17.81,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-iGPU,Intel Core Ultra7-165H NPU-only,118.83,103.38,,0.258,4.244,460,28,1,460,28,9.2,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-CPU+iGPU,Intel Core Ultra7-165H CPU+GPU,179.12,,108.97,0.389,6.397,460,28,1,460,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,345.83,252.29,,0.752,12.351,460,28,1,460,28,3.23,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,222.18,152.13,,0.462,7.935,480,28,1,480,28,17.58,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom-CPU+iGPU,Intel Atom x7425E CPU+iGPU,68.46,,23.48,1.18,5.705,58,12,1,58,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom-CPU+iGPU,Intel Atom X6425E CPU+iGPU,37.48,,22.68,0.559,3.123,67,12,1,67,12,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,atom-CPU+iGPU,Intel Celeron 6305E CPU+iGPU,115.15,,50.71,1.076,7.677,107,15,1,107,15,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-CPU+iGPU,Intel Core i7-1185G7 CPU+iGPU,192.98,,80.91,0.453,6.892,426,28,1,426,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-CPU+iGPU,Intel Core i7-12700H CPU+iGPU,239.97,,96.56,0.478,5.332,502,45,1,502,45,,FPS,FPS/$,FPS/TDP,msec.,,,,,, +yolo_v8n,OV-2024.0,core-CPU+iGPU,Intel Core i7-1360P CPU+iGPU,229.66,,88.58,0.478,8.202,480,28,1,480,28,,FPS,FPS/$,FPS/TDP,msec.,,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -mistral-7b-v0.1,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,0,0,0,0,0,117,65,1,117,65,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,0,0,0,0,0,214,35,1,214,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,0,0,0,0,0,329,125,1,329,125,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,0,0,0,0,0,192,65,1,192,65,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,0,0,0,0,0,480,28,1,480,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,,,,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,0,0,0,0,0,303,35,1,303,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,0,0,0,0,0,488,35,1,488,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,3.6,1.6,0,0.006,0.029,599,125,1,599,125,277.2,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,639.2,,222.9,4.5,, -mistral-7b-v0.1,OV-2023.3,atom,Intel Processor N200 CPU-only,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,0,0,0,0,0,594,125,1,594,125,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,0,0,0,0,0,249,71,1,249,71,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,0,0,0,0,0,3144,210,2,1572,105,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,0,0,0,0,0,16954,410,2,8477,205,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,2.5,1.9,0,0,0.005,18718,540,2,9359,270,393.2,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,529.6,,394.3,2.5,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,4.7,,0,0,0.007,34000,700,2,17000,350,211.9,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,198,5.1,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,0,0,0,0,0,21400,700,2,10700,350,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,0,,0,0,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,0,0,0,0,0,2022,200,2,1011,100,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,0,0,0,0,0,2274,300,2,1137,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,9.2,0,0,0.005,0.061,2000,150,1,2000,150,108.9,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,122.5,8.2,, -mistral-7b-v0.1,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,0,0,0,0,0,321,150,1,321,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,0,0,0,0,0,1900,75,1,1900,75,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,223.5,4.5,, -mistral-7b-v0.1,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,2.2,0,0,0.005,0.079,480,28,1,480,28,454.2,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,321.1,3.1,, -mistral-7b-v0.1,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,3.2,1.9,0,0.007,0.114,460,28,1,460,28,313.3,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,517,,181.2,5.5,, -mistral-7b-v0.1,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,0,0,0,0,0,480,28,1,480,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -mistral-7b-v0.1,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, +begin_rec, , , ,,,,,,,,,,, ,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, +chatglm2-6b,OV-2024.0,core,Intel Core i9-13900K CPU-only,7.4,2.5,,,,,,,,,134.86,tokens/sec,msec/token/$,msec/token/TDP,msec/token,405.05,,104.74,9.5,, +chatglm2-6b,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,9.2,4.7,,,,,,,,,108.13,tokens/sec,msec/token/$,msec/token/TDP,msec/token,211.3,,79.25,12.6,, +chatglm2-6b,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,23.4,15.7,,,,,,,,,42.7,tokens/sec,msec/token/$,msec/token/TDP,msec/token,63.66,,31.79,31.5,, +chatglm2-6b,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,24,15.5,,,,,,,,,,tokens/sec,msec/token/$,msec/token/TDP,msec/token,,,,30.9,, +chatglm2-6b,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,,11.8,,,,,,,,,,tokens/sec,msec/token/$,msec/token/TDP,msec/token,85.09,,,,, +chatglm2-6b,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,,4.2,,,,,,,,,,tokens/sec,msec/token/$,msec/token/TDP,msec/token,240.22,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -chatglm2-6b,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,0,0,0,0,0,117,65,1,117,65,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,0,0,0,0,0,214,35,1,214,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,0,0,0,0,0,329,125,1,329,125,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,0,0,0,0,0,192,65,1,192,65,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,0,0,0,0,0,480,28,1,480,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,0,0,0,0,0,303,35,1,303,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,0,0,0,0,0,488,35,1,488,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,7.4,2.5,0,0.012,0.059,599,125,1,599,125,135.8,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,407.1,,111.6,9,, -chatglm2-6b,OV-2023.3,atom,Intel Processor N200 CPU-only,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,0,0,0,0,0,594,125,1,594,125,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,0,0,0,0,0,249,71,1,249,71,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,0,0,0,0,0,3144,210,2,1572,105,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,0,0,0,0,0,16954,410,2,8477,205,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,8.4,4.5,0,0,0.016,18718,540,2,9359,270,118.6,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,220.4,,97,10.3,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,0,22,0,0,0,34000,700,2,17000,350,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,45.5,,35.5,28.2,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,0,0,0,0,0,21400,700,2,10700,350,97.6,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,0,,0,0,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,0,0,0,0,0,2022,200,2,1011,100,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,0,0,0,0,0,2274,300,2,1137,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,0,0,0,0,0,2000,150,1,2000,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,67.2,14.9,, -chatglm2-6b,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,0,0,0,0,0,321,150,1,321,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,0,0,0,0,0,1900,75,1,1900,75,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,161.7,6.2,, -chatglm2-6b,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,0,2.9,0,0,0,480,28,1,480,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,346.1,,273.5,3.7,, -chatglm2-6b,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,6.4,3.7,0,0.014,0.229,460,28,1,460,28,156.4,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,271,,126.1,7.9,, -chatglm2-6b,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,0,0,0,0,0,480,28,1,480,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -chatglm2-6b,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, +begin_rec, , , ,,,,,,,,,,, ,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, +llama-2-7b-chat,OV-2024.0,core,Intel Core i9-13900K CPU-only,6.7,2.2,,,,,,,,,148.81,tokens/sec,msec/token/$,msec/token/TDP,msec/token,458.75,,112.65,8.9,, +llama-2-7b-chat,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,10.4,3.6,,,,,,,,,95.73,tokens/sec,msec/token/$,msec/token/TDP,msec/token,280.26,,57.52,17.4,, +llama-2-7b-chat,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,20.1,13.6,,,,,,,,,49.75,tokens/sec,msec/token/$,msec/token/TDP,msec/token,73.68,,37.1,27,, +llama-2-7b-chat,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,21.3,14.5,,,,,,,,,,tokens/sec,msec/token/$,msec/token/TDP,msec/token,,,,30.2,, +llama-2-7b-chat,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,15.3,,,,,,,,,,65.31,tokens/sec,msec/token/$,msec/token/TDP,msec/token,,,83.57,12,, +llama-2-7b-chat,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,10.3,10.7,,,,,,,,,97.45,tokens/sec,msec/token/$,msec/token/TDP,msec/token,93.26,,116.82,8.6,, +llama-2-7b-chat,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,3.5,,,,,,,,,,286.83,tokens/sec,msec/token/$,msec/token/TDP,msec/token,,,217.08,4.6,, +llama-2-7b-chat,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,5.4,3.3,,,,,,,,,183.6,tokens/sec,msec/token/$,msec/token/TDP,msec/token,305.68,,116.97,8.5,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -llama-2-7b-chat,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,0,0,0,0,0,117,65,1,117,65,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,0,0,0,0,0,214,35,1,214,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,0,0,0,0,0,329,125,1,329,125,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,0,0,0,0,0,192,65,1,192,65,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,0,0,0,0,0,480,28,1,480,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,0,0,0,0,0,303,35,1,303,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,0,0,0,0,0,488,35,1,488,35,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,6,2.2,0,0.01,0.048,599,125,1,599,125,166.5,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,463.2,,114.5,8.7,, -llama-2-7b-chat,OV-2023.3,atom,Intel Processor N200 CPU-only,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,0,0,0,0,0,594,125,1,594,125,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,0,0,0,0,0,249,71,1,249,71,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,0,0,0,0,0,3144,210,2,1572,105,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,0,0,0,0,0,16954,410,2,8477,205,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,7.3,3.3,0,0,0.013,18718,540,2,9359,270,137.2,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,301.6,,67.3,14.9,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,18.7,12.3,0,0.001,0.027,34000,700,2,17000,350,53.5,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,81.6,,41.1,24.3,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,0,0,0,0,0,21400,700,2,10700,350,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,0,,0,0,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,0,0,0,0,0,2022,200,2,1011,100,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,0,0,0,0,0,2274,300,2,1137,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,0,0,0,0,0,2000,150,1,2000,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,106.8,9.4,, -llama-2-7b-chat,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,0,0,0,0,0,321,150,1,321,150,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,0,0,0,0,0,1900,75,1,1900,75,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,2.4,2.9,0,0.005,0.087,480,28,1,480,28,410.5,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,346.1,,315.9,3.2,, -llama-2-7b-chat,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,4.1,2.8,0,0.009,0.146,460,28,1,460,28,244.2,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,359.1,,176.6,5.7,, -llama-2-7b-chat,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,0,0,0,0,0,67,12,1,67,12,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,0,0,0,0,0,107,15,1,107,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,0,0,0,0,0,490,15,1,490,15,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,0,0,0,0,0,502,45,1,502,45,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,0,0,0,0,0,480,28,1,480,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,0,0,0,0,0,80,6,1,80,6,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, -llama-2-7b-chat,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,0,0,0,0,0,460,28,1,460,28,0,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, +begin_rec, , , ,,,,,,,,,,, ,tokens/sec,tokens/sec/$,tokens/sec/TDP,msec/token,,,,,, +mistral-7b-v0.1,OV-2024.0,core,Intel Core i9-13900K CPU-only,6.3,2,,,,,,,,,157.95,tokens/sec,msec/token/$,msec/token/TDP,msec/token,491.22,,106.24,9.4,, +mistral-7b-v0.1,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,7.5,3.7,,,,,,,,,133.73,tokens/sec,msec/token/$,msec/token/TDP,msec/token,267.73,,78.61,12.7,, +mistral-7b-v0.1,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,19.2,12.7,,,,,,,,,51.95,tokens/sec,msec/token/$,msec/token/TDP,msec/token,78.85,,35.43,28.2,, +mistral-7b-v0.1,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,20.2,14.4,,,,,,,,,,tokens/sec,msec/token/$,msec/token/TDP,msec/token,,,,26,, +mistral-7b-v0.1,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,13.3,,,,,,,,,,75.05,tokens/sec,msec/token/$,msec/token/TDP,msec/token,,,101.29,9.9,, +mistral-7b-v0.1,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,7.5,7.1,,,,,,,,,132.71,tokens/sec,msec/token/$,msec/token/TDP,msec/token,141.58,,162.26,6.2,, +mistral-7b-v0.1,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,,,,,,,,,,,,tokens/sec,msec/token/$,msec/token/TDP,msec/token,,,309.56,3.2,, +mistral-7b-v0.1,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,4.3,2.5,,,,,,,,,231.75,tokens/sec,msec/token/$,msec/token/TDP,msec/token,393.34,,166.45,6,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, -begin_rec, , , ,,,,,,,,,,,,,,,,,,,,, -stable-diffusion-v2-1,OV-2023.3,atom,Intel® Atom® X6425E CPU-only,0,0,0,0,0,67,12,1,67,12,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,atom,Intel® Celeron® 6305E CPU-only,0,0,0,0,0,107,15,1,107,15,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i3-8100 CPU-only,0,0,0,0,0,117,65,1,117,65,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i5-10500TE CPU-only,0,0,0,0,0,214,35,1,214,35,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i5-13600K CPU-only,0,0,0,0,0,329,125,1,329,125,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i5-8500 CPU-only,0,0,0,0,0,192,65,1,192,65,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i7-1185GRE CPU-only,0,0,0,0,0,490,15,1,490,15,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i7-12700H CPU-only,0,0,0,0,0,502,45,1,502,45,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i7-1360P CPU-only,0,0,0,0,0,480,28,1,480,28,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core Ultra7-165H CPU-only,0,0,0,0,0,460,28,1,460,28,,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i7-8700T CPU-only,0,0,0,0,0,303,35,1,303,35,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i9-10900TE CPU-only,0,0,0,0,0,488,35,1,488,35,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core,Intel® Core™ i9-13900K CPU-only,0,0,0,0,0,599,125,1,599,125,65.6,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",49.9,,,,, -stable-diffusion-v2-1,OV-2023.3,atom,Intel Processor N200 CPU-only,0,0,0,0,0,80,6,1,80,6,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® W1290P CPU-only,0,0,0,0,0,594,125,1,594,125,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® E-2124G CPU-only,0,0,0,0,0,249,71,1,249,71,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® Gold 5218T CPU-only,0,0,0,0,0,3144,210,2,1572,105,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® Platinum 8270 CPU-only,0,0,0,0,0,16954,410,2,8477,205,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® Platinum 8380 CPU-only,0,0,0,0,0,18718,540,2,9359,270,22.2,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",22.2,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® Platinum 8490H CPU-only,0,0,0,0,0,34000,700,2,17000,350,5.1,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",5,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® Platinum 8580 CPU-only,0,0,0,0,0,21400,700,2,10700,350,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",0,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® Silver 4216R CPU-only,0,0,0,0,0,2022,200,2,1011,100,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,xeon,Intel® Xeon® Silver 4316 CPU-only,0,0,0,0,0,2274,300,2,1137,150,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,accel,Intel® Data Center GPU Flex 170 dGPU,0,0,0,0,0,2000,150,1,2000,150,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",4.3,,,,, -stable-diffusion-v2-1,OV-2023.3,accel,Intel® Arc™ A-Series Graphics dGPU,0,0,0,0,0,321,150,1,321,150,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,accel,Intel® Data Center GPU Flex 140 dGPU,0,0,0,0,0,1900,75,1,1900,75,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",39.9,,,,, -stable-diffusion-v2-1,OV-2023.3,atom-iGPU,Intel® Atom® X6425E iGPU-only,0,0,0,0,0,67,12,1,67,12,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,atom-iGPU,Intel® Celeron® 6305E iGPU-only,0,0,0,0,0,107,15,1,107,15,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core-iGPU,Intel® Core™ i7-1185GRE iGPU-only,0,0,0,0,0,490,15,1,490,15,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core-iGPU,Intel® Core™ i7-12700H iGPU-only,0,0,0,0,0,502,45,1,502,45,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core-iGPU,Intel® Core™ i7-1360P iGPU-only,0,0,0,0,0,480,28,1,480,28,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",27.9,,,,, -stable-diffusion-v2-1,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H iGPU-only,0,0,0,0,0,460,28,1,460,28,17.4,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",16.2,,,,, -stable-diffusion-v2-1,OV-2023.3,core-iGPU,Intel® Core Ultra7-165H NPU-only,0,0,0,0,0,460,28,1,460,28,,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,atom-iGPU,Intel Processor N200 iGPU-only,0,0,0,0,0,80,6,1,80,6,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,atom-CPU+iGPU,Intel® Atom® X6425E CPU+iGPU,0,0,0,0,0,67,12,1,67,12,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,atom-CPU+iGPU,Intel® Celeron® 6305E CPU+iGPU,0,0,0,0,0,107,15,1,107,15,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1185GRE CPU+iGPU,0,0,0,0,0,490,15,1,490,15,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-12700H CPU+iGPU,0,0,0,0,0,502,45,1,502,45,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-1,OV-2023.3,core-CPU+iGPU,Intel® Core™ i7-1360P CPU+iGPU,0,0,0,0,0,480,28,1,480,28,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-2,OV-2023.3,atom-CPU+iGPU,Intel Processor N200 CPU+iGPU,0,0,0,0,0,80,6,1,80,6,0,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, -stable-diffusion-v2-2,OV-2023.3,core-CPU+iGPU,Intel® Core Ultra7-165H CPU+iGPU,0,0,0,0,0,460,28,1,460,28,,"Generating time, sec.",Generation-time/$,Generation-time/TDP,"Generating time, sec.",,,,,, +begin_rec, , , ,,,,,,,,,,, ,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",,,,,, +stable-diffusion-v2-1,OV-2024.0,core,Intel Core i9-13900K CPU-only,,,,,,,,,,,64.34,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",49.15,,,,, +stable-diffusion-v2-1,OV-2024.0,xeon,Intel Xeon Platinum 8380 CPU-only,,,,,,,,,,,21.65,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",20.89,,,,, +stable-diffusion-v2-1,OV-2024.0,xeon,Intel Xeon Platinum 8490H CPU-only,,,,,,,,,,,4.11,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",4.38,,,,, +stable-diffusion-v2-1,OV-2024.0,xeon,Intel Xeon Gold 6548N CPU-only,,,,,,,,,,,5.6,"Generation time, sec.",msec/token/$,msec/token/TDP,msec/token,5.6,,,,, +stable-diffusion-v2-1,OV-2024.0,accel,Intel Data Center GPU Flex 170 dGPU,,,,,,,,,,,7.5,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",4.73,,,,, +stable-diffusion-v2-1,OV-2024.0,accel,Intel Arc A-Series Graphics dGPU,,,,,,,,,,,7.91,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",5.12,,,,, +stable-diffusion-v2-1,OV-2024.0,core-iGPU,Intel Core i7-1360P iGPU-only,,,,,,,,,,,35.03,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",34.19,,,,, +stable-diffusion-v2-1,OV-2024.0,core-iGPU,Intel Core Ultra7-165H iGPU-only,,,,,,,,,,,21.3,"Generation time, sec.",Generation time/$,Generation time/TDP,"Generation time, sec.",21.1,,,,, end_rec,,,,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file From 6c55b70455707b6624262cc2b5c884966e27b573 Mon Sep 17 00:00:00 2001 From: Sebastian Golebiewski Date: Tue, 12 Mar 2024 11:44:19 +0100 Subject: [PATCH 07/15] [DOCS] Update distribution comparison table (#23398) Updating distribution comparison table. Porting: https://github.com/openvinotoolkit/openvino/pull/23271 https://github.com/openvinotoolkit/openvino/pull/23277 --- .../articles_en/get-started/install-openvino.rst | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/articles_en/get-started/install-openvino.rst b/docs/articles_en/get-started/install-openvino.rst index ed2e21e12326e3..c7c652a19f4d0c 100644 --- a/docs/articles_en/get-started/install-openvino.rst +++ b/docs/articles_en/get-started/install-openvino.rst @@ -48,13 +48,15 @@ Install OpenVINO™ 2024.0 .. dropdown:: Distribution Comparison for OpenVINO 2024.0 - =============== ========== ====== ========= ======== ============ ========== ========== - Device Archives PyPI APT/YUM Conda Homebrew vcpkg Conan - =============== ========== ====== ========= ======== ============ ========== ========== - CPU V V V V V V V - GPU V V V V V V V - NPU V n/a n/a n/a n/a n/a n/a - =============== ========== ====== ========= ======== ============ ========== ========== + =============== ========== ====== ========= ======== ============ ========== ========== ========== + Device Archives PyPI APT/YUM Conda Homebrew vcpkg Conan npm + =============== ========== ====== ========= ======== ============ ========== ========== ========== + CPU V V V V V V V V + GPU V V V V V V V V + NPU V\* V\* V\* n/a n/a n/a n/a V\* + =============== ========== ====== ========= ======== ============ ========== ========== ========== + + \* **Of the Linux systems, only Ubuntu 22.04 includes drivers for NPU device.** | **Build OpenVINO from source** | OpenVINO Toolkit source files are available on GitHub as open source. If you want to build your own version of OpenVINO for your platform, From ebde6c817b0d29af1b0decf62336ee0b9a143b1b Mon Sep 17 00:00:00 2001 From: Damian Kurek Date: Tue, 12 Mar 2024 12:16:41 +0100 Subject: [PATCH 08/15] [GPU] Implement bias on internal FC op (#23317) Added bias semantics support for internal FC op ### Details: - Added bias semantics support for internal FC op --- .../include/intel_gpu/op/fully_connected.hpp | 1 + .../op/fully_connected_compressed.hpp | 2 + .../src/plugin/ops/fully_connected.cpp | 14 +++--- .../convert_fc_to_compressed.cpp | 7 ++- .../transformations/convert_matmul_to_fc.cpp | 5 +- .../transformations/fc_convert_fusion.cpp | 11 +++-- .../move_fc_reshape_to_weights.cpp | 2 +- .../transformations/op/fully_connected.cpp | 9 ++-- .../op/fully_connected_compressed.cpp | 18 ++++--- .../convert_fc_to_compressed_test.cpp | 49 +++++++++++++------ .../convert_matmul_to_fc_test.cpp | 49 +++++++++++++------ .../fc_convert_fusion_test.cpp | 13 +++-- .../move_fc_reshape_to_weights.cpp | 5 +- 13 files changed, 124 insertions(+), 61 deletions(-) diff --git a/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected.hpp b/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected.hpp index a77c39c20338c0..66b97542520564 100644 --- a/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected.hpp +++ b/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected.hpp @@ -19,6 +19,7 @@ class FullyConnected : public ov::op::Op { FullyConnected(const ov::Output& A, const ov::Output& B, + const ov::Output& bias, const ov::element::Type output_type = ov::element::undefined); bool visit_attributes(ov::AttributeVisitor &visitor) override; diff --git a/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected_compressed.hpp b/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected_compressed.hpp index 6835088eb88967..7e63a523660817 100644 --- a/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected_compressed.hpp +++ b/src/plugins/intel_gpu/include/intel_gpu/op/fully_connected_compressed.hpp @@ -18,12 +18,14 @@ class FullyConnectedCompressed : public FullyConnected { FullyConnectedCompressed(const ov::Output &A, const ov::Output &B, + const ov::Output &bias, const ov::Output &decompression_scale, const ov::Output &decompression_zero_point, const ov::element::Type output_type = ov::element::undefined); FullyConnectedCompressed(const ov::Output &A, const ov::Output &B, + const ov::Output &bias, const ov::Output &decompression_scale, const ov::element::Type output_type = ov::element::undefined); diff --git a/src/plugins/intel_gpu/src/plugin/ops/fully_connected.cpp b/src/plugins/intel_gpu/src/plugin/ops/fully_connected.cpp index 8a628809266d43..5b1b8f353863cd 100644 --- a/src/plugins/intel_gpu/src/plugin/ops/fully_connected.cpp +++ b/src/plugins/intel_gpu/src/plugin/ops/fully_connected.cpp @@ -26,14 +26,15 @@ namespace ov { namespace intel_gpu { static void CreateFullyConnectedCompressedOp(ProgramBuilder& p, const std::shared_ptr& op) { - validate_inputs_count(op, {3, 4}); + validate_inputs_count(op, {4, 5}); auto inputs = p.GetInputInfo(op); std::string primitive_name = layer_type_name_ID(op); auto input_name = inputs[0].pid; auto weights_name = inputs[1].pid; - auto scale_name = inputs[2].pid; - auto zp_name = inputs.size() == 4 ? inputs[3].pid : ""; + auto bias_name = inputs[2].pid; + auto scale_name = inputs[3].pid; + auto zp_name = inputs.size() == 5 ? inputs[4].pid : ""; float zp_value = 0.0f; bool has_scalar_zp = false; @@ -47,7 +48,7 @@ static void CreateFullyConnectedCompressedOp(ProgramBuilder& p, const std::share auto fc = cldnn::fully_connected(primitive_name, cldnn::input_info(input_name), weights_name, - "", + bias_name, scale_name, has_scalar_zp ? "" : zp_name, cldnn::element_type_to_data_type(op->get_output_element_type(0)), @@ -63,12 +64,13 @@ static void CreateFullyConnectedCompressedOp(ProgramBuilder& p, const std::share } static void CreateFullyConnectedOp(ProgramBuilder& p, const std::shared_ptr& op) { - validate_inputs_count(op, {2}); + validate_inputs_count(op, {3}); auto inputs = p.GetInputInfo(op); std::string layerName = layer_type_name_ID(op); auto input_name = inputs[0].pid; auto weights_name = inputs[1].pid; + auto bias_name = inputs[2].pid; auto shape_a = op->get_input_partial_shape(0); auto shape_b = op->get_input_partial_shape(1); @@ -79,7 +81,7 @@ static void CreateFullyConnectedOp(ProgramBuilder& p, const std::shared_ptrget_output_element_type(0)), cldnn::padding(), rank_a, diff --git a/src/plugins/intel_gpu/src/plugin/transformations/convert_fc_to_compressed.cpp b/src/plugins/intel_gpu/src/plugin/transformations/convert_fc_to_compressed.cpp index 32b9dcfa5ff244..67100b1d764cff 100644 --- a/src/plugins/intel_gpu/src/plugin/transformations/convert_fc_to_compressed.cpp +++ b/src/plugins/intel_gpu/src/plugin/transformations/convert_fc_to_compressed.cpp @@ -59,14 +59,16 @@ ConvertFullyConnectedToFullyConnectedCompressed::ConvertFullyConnectedToFullyCon auto transpose_m = wrap_type({transpose_input, transpose_const_m}); auto data_m = any_input(); + auto bias_m = any_input(); auto weights_input_m = std::make_shared(ov::OutputVector{reshape_m, transpose_m, mul_m}); - auto fully_connected_m = wrap_type({data_m, weights_input_m}); + auto fully_connected_m = wrap_type({data_m, weights_input_m, bias_m}); ov::matcher_pass_callback callback = [=](ov::pass::pattern::Matcher& m) { const auto& pattern_map = m.get_pattern_value_map(); OPENVINO_ASSERT(pattern_map.count(fully_connected_m)); OPENVINO_ASSERT(pattern_map.count(mul_const_m)); OPENVINO_ASSERT(pattern_map.count(weights_m)); + OPENVINO_ASSERT(pattern_map.count(bias_m)); OPENVINO_ASSERT(pattern_map.count(convert_m)); auto fc = std::dynamic_pointer_cast(pattern_map.at(fully_connected_m).get_node_shared_ptr()); if (!fc || transformation_callback(fc)) { @@ -103,6 +105,7 @@ ConvertFullyConnectedToFullyConnectedCompressed::ConvertFullyConnectedToFullyCon std::shared_ptr fc_input_b = reshape_const_to_2d(pattern_map.at(weights_m).get_node_shared_ptr()); std::shared_ptr fc_input_scale = scale; std::shared_ptr fc_input_zp = optional_zero_point; + std::shared_ptr fc_input_bias = pattern_map.at(bias_m).get_node_shared_ptr(); std::vector> result_nodes = {}; if (has_transpose) { const auto& transpose = pattern_map.at(transpose_m).get_node_shared_ptr(); @@ -128,12 +131,14 @@ ConvertFullyConnectedToFullyConnectedCompressed::ConvertFullyConnectedToFullyCon if (with_zero_point) { new_fc = std::make_shared(fc_input_a, fc_input_b, + fc_input_bias, fc_input_scale, fc_input_zp, fc->get_output_type()); } else { new_fc = std::make_shared(fc_input_a, fc_input_b, + fc_input_bias, fc_input_scale, fc->get_output_type()); } diff --git a/src/plugins/intel_gpu/src/plugin/transformations/convert_matmul_to_fc.cpp b/src/plugins/intel_gpu/src/plugin/transformations/convert_matmul_to_fc.cpp index 0cd5e1090eb2df..411c4389ea247d 100644 --- a/src/plugins/intel_gpu/src/plugin/transformations/convert_matmul_to_fc.cpp +++ b/src/plugins/intel_gpu/src/plugin/transformations/convert_matmul_to_fc.cpp @@ -3,6 +3,7 @@ // #include "intel_gpu/op/fully_connected.hpp" +#include "intel_gpu/op/placeholder.hpp" #include "convert_matmul_to_fc.hpp" #include "openvino/op/matmul.hpp" #include "openvino/op/convert.hpp" @@ -177,8 +178,10 @@ ConvertMatMulToFullyConnected::ConvertMatMulToFullyConnected() { fc_input_b = convert; } + auto no_bias = std::make_shared(); + // Create FullyConnected - auto fc = std::make_shared(fc_input_a, fc_input_b, matmul->get_output_element_type(0)); + auto fc = std::make_shared(fc_input_a, fc_input_b, no_bias, matmul->get_output_element_type(0)); fc->set_friendly_name(matmul->get_friendly_name()); new_ops.push_back(fc); ov::copy_runtime_info(matmul, new_ops); diff --git a/src/plugins/intel_gpu/src/plugin/transformations/fc_convert_fusion.cpp b/src/plugins/intel_gpu/src/plugin/transformations/fc_convert_fusion.cpp index a5d798e4c2721c..e5f992ad9cd8b4 100644 --- a/src/plugins/intel_gpu/src/plugin/transformations/fc_convert_fusion.cpp +++ b/src/plugins/intel_gpu/src/plugin/transformations/fc_convert_fusion.cpp @@ -20,8 +20,9 @@ FullyConnectedConvertFusion::FullyConnectedConvertFusion() { auto data = any_input(); auto weights = any_input(); - auto fully_connected = wrap_type({data, weights}, consumers_count(1)); - auto fully_connected_compressed = wrap_type({data, weights, any_input(), any_input()}, consumers_count(1)); + auto bias = any_input(); + auto fully_connected = wrap_type({data, weights, bias}, consumers_count(1)); + auto fully_connected_compressed = wrap_type({data, weights, bias, any_input(), any_input()}, consumers_count(1)); auto fc = std::make_shared(OutputVector{fully_connected, fully_connected_compressed}); auto convert = wrap_type({fc}, type_matches(element::f32)); @@ -30,6 +31,7 @@ FullyConnectedConvertFusion::FullyConnectedConvertFusion() { const auto& m_data = pattern_map.at(data).get_node_shared_ptr(); const auto& m_weights = pattern_map.at(weights).get_node_shared_ptr(); + const auto& m_bias = pattern_map.at(bias).get_node_shared_ptr(); const auto& m_convert = pattern_map.at(convert).get_node_shared_ptr(); auto output_type = m_convert->get_output_element_type(0); @@ -38,13 +40,14 @@ FullyConnectedConvertFusion::FullyConnectedConvertFusion() { auto it = pattern_map.find(fully_connected); if (it != pattern_map.end()) { m_fc = it->second.get_node_shared_ptr(); - new_fc = std::make_shared(m_data, m_weights, output_type); + new_fc = std::make_shared(m_data, m_weights, m_bias, output_type); } else { m_fc = pattern_map.at(fully_connected_compressed).get_node_shared_ptr(); new_fc = std::make_shared(m_data, m_weights, - m_fc->input_value(2), + m_bias, m_fc->input_value(3), + m_fc->input_value(4), output_type); } new_fc->set_friendly_name(m_convert->get_friendly_name()); diff --git a/src/plugins/intel_gpu/src/plugin/transformations/move_fc_reshape_to_weights.cpp b/src/plugins/intel_gpu/src/plugin/transformations/move_fc_reshape_to_weights.cpp index 8ed48f4768ec42..8b54d32d1c5559 100644 --- a/src/plugins/intel_gpu/src/plugin/transformations/move_fc_reshape_to_weights.cpp +++ b/src/plugins/intel_gpu/src/plugin/transformations/move_fc_reshape_to_weights.cpp @@ -44,7 +44,7 @@ MoveFCReshapeToWeights::MoveFCReshapeToWeights() { auto weights_input_m = std::make_shared(ov::OutputVector{reshape_m, transpose_m}); auto data_m = any_input(); - auto fully_connected_m = wrap_type({data_m, weights_input_m}); + auto fully_connected_m = wrap_type({data_m, weights_input_m, any_input()}); ov::matcher_pass_callback callback = [&](ov::pass::pattern::Matcher& m) { const auto fully_connected = m.get_match_root(); diff --git a/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected.cpp b/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected.cpp index e10e2e2edcaba7..bd89197cba910d 100644 --- a/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected.cpp +++ b/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected.cpp @@ -11,24 +11,25 @@ namespace op { FullyConnected::FullyConnected(const ov::Output& A, const ov::Output& B, + const ov::Output& bias, const ov::element::Type output_type) - : Op({A, B}), m_output_type(output_type) { + : Op({A, B, bias}), m_output_type(output_type) { validate_and_infer_types(); } std::shared_ptr FullyConnected::clone_with_new_inputs(const ov::OutputVector& new_args) const { check_new_args_count(this, new_args); - return std::make_shared(new_args.at(0), new_args.at(1), m_output_type); + return std::make_shared(new_args.at(0), new_args.at(1), new_args.at(2), m_output_type); } void FullyConnected::validate_and_infer_types() { const auto input_size = get_input_size(); NODE_VALIDATION_CHECK(this, - input_size >= 2, + input_size >= 3, "Number of inputs is incorrect. Current value is: ", input_size, - ", expected at least 2."); + ", expected at least 3."); ov::op::v0::MatMul op; op.set_transpose_a(false); diff --git a/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected_compressed.cpp b/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected_compressed.cpp index 1ecfc1e21081b5..4eb73cfcaf5280 100644 --- a/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected_compressed.cpp +++ b/src/plugins/intel_gpu/src/plugin/transformations/op/fully_connected_compressed.cpp @@ -10,37 +10,41 @@ namespace op { FullyConnectedCompressed::FullyConnectedCompressed(const ov::Output& A, const ov::Output& B, + const ov::Output& bias, const ov::Output& decompression_scale, const ov::Output& decompression_zero_point, const ov::element::Type output_type) - : FullyConnected(A, B, output_type) { - set_argument(2, decompression_scale); - set_argument(3, decompression_zero_point); + : FullyConnected(A, B, bias, output_type) { + set_argument(3, decompression_scale); + set_argument(4, decompression_zero_point); validate_and_infer_types(); } FullyConnectedCompressed::FullyConnectedCompressed(const ov::Output& A, const ov::Output& B, + const ov::Output& bias, const ov::Output& decompression_scale, const ov::element::Type output_type) - : FullyConnected(A, B, output_type) { - set_argument(2, decompression_scale); + : FullyConnected(A, B, bias, output_type) { + set_argument(3, decompression_scale); validate_and_infer_types(); } std::shared_ptr FullyConnectedCompressed::clone_with_new_inputs(const ov::OutputVector& new_args) const { check_new_args_count(this, new_args); - if (new_args.size() == 3) + if (new_args.size() == 4) return std::make_shared(new_args.at(0), new_args.at(1), new_args.at(2), + new_args.at(3), m_output_type); - else if (new_args.size() == 4) + else if (new_args.size() == 5) return std::make_shared(new_args.at(0), new_args.at(1), new_args.at(2), new_args.at(3), + new_args.at(4), m_output_type); else OPENVINO_THROW("Unexpected inputs count for FullyConnectedCompressed op: ", new_args.size()); diff --git a/src/plugins/intel_gpu/tests/unit/transformations/convert_fc_to_compressed_test.cpp b/src/plugins/intel_gpu/tests/unit/transformations/convert_fc_to_compressed_test.cpp index 60920be9c90a09..1c7ebe72990ae4 100644 --- a/src/plugins/intel_gpu/tests/unit/transformations/convert_fc_to_compressed_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/transformations/convert_fc_to_compressed_test.cpp @@ -17,6 +17,7 @@ #include "openvino/op/add.hpp" #include "intel_gpu/op/fully_connected.hpp" #include "intel_gpu/op/fully_connected_compressed.hpp" +#include "intel_gpu/op/placeholder.hpp" #include "plugin/transformations/convert_fc_to_compressed.hpp" @@ -36,7 +37,8 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed1) { auto convert = std::make_shared(weights_const, ov::element::f32); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 1 }, { 1 }); auto scale = std::make_shared(convert, scale_const); - auto fc = std::make_shared(input1, scale); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, scale, no_bias); model = std::make_shared(ov::NodeVector{ fc }, ov::ParameterVector{ input1 }); manager.register_pass(); @@ -44,8 +46,9 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed1) { { auto input1 = std::make_shared(ov::element::f32, ov::PartialShape{ -1, 16 }); auto weights_const = ov::op::v0::Constant::create(ov::element::u8, ov::Shape{ 32, 16 }, { 1 }); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 1 }, { 1 }); - auto fc_compressed = std::make_shared(input1, weights_const, scale_const); + auto fc_compressed = std::make_shared(input1, weights_const, no_bias, scale_const); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input1 }); } @@ -60,7 +63,8 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed2) { auto sub = std::make_shared(convert, zp_const); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 1 }, { 1 }); auto scale = std::make_shared(sub, scale_const); - auto fc = std::make_shared(input1, scale); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, scale, no_bias); model = std::make_shared(ov::NodeVector{ fc }, ov::ParameterVector{ input1 }); manager.register_pass(); @@ -68,9 +72,10 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed2) { { auto input1 = std::make_shared(ov::element::f32, ov::PartialShape{ -1, 16 }); auto weights_const = ov::op::v0::Constant::create(ov::element::u8, ov::Shape{ 32, 16 }, { 1 }); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 1 }, { 1 }); auto zp_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 1 }, { 1 }); - auto fc_compressed = std::make_shared(input1, weights_const, scale_const, zp_const); + auto fc_compressed = std::make_shared(input1, weights_const, no_bias, scale_const, zp_const); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input1 }); } @@ -87,7 +92,8 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed3) { auto scale = std::make_shared(sub, scale_const); auto reshape_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { -1, 16 }); auto reshape = std::make_shared(scale, reshape_const, false); - auto fc = std::make_shared(input1, reshape); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, reshape, no_bias); model = std::make_shared(ov::NodeVector{ fc }, ov::ParameterVector{ input1 }); manager.register_pass(); @@ -95,9 +101,10 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed3) { { auto input1 = std::make_shared(ov::element::f32, ov::PartialShape{ -1, 16 }); auto weights_const = ov::op::v0::Constant::create(ov::element::u8, ov::Shape{ 32, 16 }, { 1 }); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 4 }, { 1 }); auto zp_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 4 }, { 1 }); - auto fc_compressed = std::make_shared(input1, weights_const, scale_const, zp_const); + auto fc_compressed = std::make_shared(input1, weights_const, no_bias, scale_const, zp_const); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input1 }); } @@ -114,7 +121,8 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed4) { auto scale = std::make_shared(sub, scale_const); auto reshape_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { -1, 16 }); auto reshape = std::make_shared(scale, reshape_const, false); - auto fc = std::make_shared(input1, reshape); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, reshape, no_bias); model = std::make_shared(ov::NodeVector{ fc }, ov::ParameterVector{ input1 }); manager.register_pass(); @@ -122,9 +130,10 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed4) { { auto input1 = std::make_shared(ov::element::f32, ov::PartialShape{ -1, 16 }); auto weights_const = ov::op::v0::Constant::create(ov::element::u4, ov::Shape{ 32, 16 }, { 1 }); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 32, 4 }, { 1 }); auto zp_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 1, 1 }, { 1 }); - auto fc_compressed = std::make_shared(input1, weights_const, scale_const, zp_const); + auto fc_compressed = std::make_shared(input1, weights_const, no_bias, scale_const, zp_const); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input1 }); } @@ -143,7 +152,8 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed5) { auto reshape = std::make_shared(scale, reshape_const, false); auto transpose_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose = std::make_shared(reshape, transpose_const); - auto fc = std::make_shared(input1, transpose); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, transpose, no_bias); model = std::make_shared(ov::NodeVector{ fc }, ov::ParameterVector{ input1 }); manager.register_pass(); @@ -153,11 +163,12 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed5) { auto weights_const = ov::op::v0::Constant::create(ov::element::u4, ov::Shape{ 16, 32 }, { 1 }); auto transpose_weights_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_weights = std::make_shared(weights_const, transpose_weights_const); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 4, 32 }, { 1 }); auto transpose_scale_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_scale = std::make_shared(scale_const, transpose_scale_const); auto zp_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 1, 1 }, { 1 }); - auto fc_compressed = std::make_shared(input1, transpose_weights, transpose_scale, zp_const); + auto fc_compressed = std::make_shared(input1, transpose_weights, no_bias, transpose_scale, zp_const); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input1 }); } @@ -176,7 +187,8 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed6) { auto reshape = std::make_shared(scale, reshape_const, false); auto transpose_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose = std::make_shared(reshape, transpose_const); - auto fc = std::make_shared(input1, transpose); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, transpose, no_bias); model = std::make_shared(ov::NodeVector{ fc }, ov::ParameterVector{ input1 }); manager.register_pass(); @@ -186,13 +198,14 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed6) { auto weights_const = ov::op::v0::Constant::create(ov::element::u4, ov::Shape{ 16, 32 }, { 1 }); auto transpose_weights_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_weights = std::make_shared(weights_const, transpose_weights_const); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 4, 32 }, { 1 }); auto transpose_scale_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_scale = std::make_shared(scale_const, transpose_scale_const); auto zp_const = ov::op::v0::Constant::create(ov::element::f32, ov::Shape{ 4, 32 }, { 1 }); auto transpose_zp_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_zp = std::make_shared(zp_const, transpose_zp_const); - auto fc_compressed = std::make_shared(input1, transpose_weights, transpose_scale, transpose_zp); + auto fc_compressed = std::make_shared(input1, transpose_weights, no_bias, transpose_scale, transpose_zp); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input1 }); } @@ -211,7 +224,8 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed7) { auto reshape = std::make_shared(scale, reshape_const, false); auto transpose_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose = std::make_shared(reshape, transpose_const); - auto fc = std::make_shared(input1, transpose); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, transpose, no_bias); model = std::make_shared(ov::NodeVector{ fc }, ov::ParameterVector{ input1 }); manager.register_pass(); @@ -221,13 +235,14 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed7) { auto weights_const = ov::op::v0::Constant::create(ov::element::u4, ov::Shape{ 16, 32 }, { 1 }); auto transpose_weights_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_weights = std::make_shared(weights_const, transpose_weights_const); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{ 4, 32 }, { 1 }); auto transpose_scale_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_scale = std::make_shared(scale_const, transpose_scale_const); auto zp_const = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{ 4, 32 }, { 1 }); auto transpose_zp_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_zp = std::make_shared(zp_const, transpose_zp_const); - auto fc_compressed = std::make_shared(input1, transpose_weights, transpose_scale, transpose_zp); + auto fc_compressed = std::make_shared(input1, transpose_weights, no_bias, transpose_scale, transpose_zp); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input1 }); } @@ -325,6 +340,7 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed8) { auto reshape = std::make_shared(scale, reshape_const, false); auto transpose_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose = std::make_shared(reshape, transpose_const); + auto no_bias = std::make_shared(); auto param1 = std::make_shared(ov::element::f16, ov::PartialShape{-1, 15}); auto const_value1 = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{1, 1}, {1}); @@ -344,7 +360,7 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed8) { args[i] = subgraph_parameters[i]->output(0); } auto subgraph_op = std::make_shared(args, submodel); - auto fc = std::make_shared(subgraph_op->output(1), transpose); + auto fc = std::make_shared(subgraph_op->output(1), transpose, no_bias); model = std::make_shared(ov::NodeVector{std::make_shared(subgraph_op->output(0)), fc}, subgraph_parameters); manager.register_pass(); @@ -353,6 +369,7 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed8) { auto weights_const = ov::op::v0::Constant::create(ov::element::u4, ov::Shape{ 16, 32 }, { 1 }); auto transpose_weights_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_weights = std::make_shared(weights_const, transpose_weights_const); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{ 4, 32 }, { 1 }); auto transpose_scale_const = ov::op::v0::Constant::create(ov::element::i32, ov::Shape{ 2 }, { 1, 0 }); auto transpose_scale = std::make_shared(scale_const, transpose_scale_const); @@ -378,7 +395,7 @@ TEST_F(TransformationTestsF, ConvertFCToCompressed8) { args[i] = subgraph_parameters[i]->output(0); } auto subgraph_op = std::make_shared(args, submodel); - auto fc_compressed = std::make_shared(subgraph_op->output(1), transpose_weights, transpose_scale, transpose_zp); + auto fc_compressed = std::make_shared(subgraph_op->output(1), transpose_weights, no_bias, transpose_scale, transpose_zp); model_ref = std::make_shared(ov::NodeVector{ std::make_shared(subgraph_op->output(0)), fc_compressed }, subgraph_parameters); } diff --git a/src/plugins/intel_gpu/tests/unit/transformations/convert_matmul_to_fc_test.cpp b/src/plugins/intel_gpu/tests/unit/transformations/convert_matmul_to_fc_test.cpp index 2b6dfb4a8f0602..a840902ac422de 100644 --- a/src/plugins/intel_gpu/tests/unit/transformations/convert_matmul_to_fc_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/transformations/convert_matmul_to_fc_test.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -42,7 +43,9 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest1) { auto transpose_constant2 = ov::opset1::Constant::create(ov::element::i32, ov::Shape{ 3 }, { 0, 2, 1 }); auto transpose2 = std::make_shared(input2, transpose_constant2); - auto matmul = std::make_shared(transpose1, transpose2); + auto no_bias = std::make_shared(); + + auto matmul = std::make_shared(transpose1, transpose2, no_bias); model_ref = std::make_shared(ov::NodeVector{ matmul }, ov::ParameterVector{ input1 }); } @@ -78,7 +81,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest3) { { auto input1 = std::make_shared(ov::element::f32, ov::Shape{3, 2, 2}); auto input2 = ov::opset1::Constant::create(ov::element::f32, ov::Shape{2, 2}, {1}); - auto matmul = std::make_shared(input1, input2); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias); model_ref = std::make_shared(ov::NodeVector{matmul}, ov::ParameterVector{input1}); } @@ -96,7 +100,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest4) { { auto input1 = std::make_shared(ov::element::f32, ov::PartialShape{-1, -1, 2}); auto input2 = ov::opset1::Constant::create(ov::element::f32, ov::Shape{2, 2}, {1}); - auto matmul = std::make_shared(input1, input2); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias); model_ref = std::make_shared(ov::NodeVector{matmul}, ov::ParameterVector{input1}); } @@ -132,7 +137,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest7) { { auto input1 = std::make_shared(ov::element::f32, ov::Shape{3, 2, 2}); auto input2 = ov::opset1::Constant::create(ov::element::f32, ov::Shape{3, 2}, {1}); - auto fc = std::make_shared(input1, input2); + auto no_bias = std::make_shared(); + auto fc = std::make_shared(input1, input2, no_bias); model_ref = std::make_shared(ov::NodeVector{fc}, ov::ParameterVector{input1}); } @@ -150,8 +156,9 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest8) { { auto input1 = std::make_shared(ov::element::f32, ov::PartialShape{-1, -1, 2}); auto input2 = ov::opset1::Constant::create(ov::element::f32, ov::Shape{3, 2}, {1}); + auto no_bias = std::make_shared(); - auto fc = std::make_shared(input1, input2); + auto fc = std::make_shared(input1, input2, no_bias); auto a_shape = std::make_shared(input1); auto I = ov::op::util::node_to_get_shape_value_of_indices_from_shape_node(a_shape, {0, 1}); @@ -174,7 +181,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest9) { { auto input1 = std::make_shared(ov::element::f32, ov::Shape{3, 2, 2}); auto input2 = ov::opset1::Constant::create(ov::element::f32, ov::Shape{2, 2}, {1}); - auto matmul = std::make_shared(input1, input2); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias); model_ref = std::make_shared(ov::NodeVector{matmul}, ov::ParameterVector{input1}); } @@ -219,7 +227,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest13) { { auto input1 = std::make_shared(ov::element::f32, ov::PartialShape{-1, -1, 1}); auto input2 = ov::opset1::Constant::create(ov::element::f32, ov::Shape{1, 80, 1}, {1}); - auto matmul = std::make_shared(input1, input2); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias); model_ref = std::make_shared(ov::NodeVector{matmul}, ov::ParameterVector{input1}); } @@ -243,7 +252,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest14) { { auto input1 = std::make_shared(ov::element::u8, ov::PartialShape{-1, -1, 1}); auto input2 = ov::opset1::Constant::create(ov::element::i8, ov::Shape{1, 80, 1}, {1}); - auto matmul = std::make_shared(input1, input2, ov::element::f32); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias, ov::element::f32); model_ref = std::make_shared(ov::NodeVector{matmul}, ov::ParameterVector{input1}); } @@ -272,9 +282,10 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest15) { auto transpose_constant = ov::opset1::Constant::create(ov::element::i32, ov::Shape{2}, {1, 0}); auto transpose = std::make_shared(input3, transpose_constant); auto convert = std::make_shared(transpose, ov::element::f32); + auto no_bias = std::make_shared(); - auto matmul1 = std::make_shared(input1, convert); - auto matmul2 = std::make_shared(input2, convert); + auto matmul1 = std::make_shared(input1, convert, no_bias); + auto matmul2 = std::make_shared(input2, convert, no_bias); model_ref = std::make_shared(ov::NodeVector{matmul1, matmul2}, ov::ParameterVector{input1, input2}); } @@ -292,7 +303,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest_second_input_rank { auto input1 = std::make_shared(ov::element::f32, ov::Shape{5, 2, 3}); auto input2 = ov::opset1::Constant::create(ov::element::f32, ov::Shape{1, 2, 3}, {1}); - auto matmul = std::make_shared(input1, input2); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias); model_ref = std::make_shared(ov::NodeVector{matmul}, ov::ParameterVector{input1}); } } @@ -309,7 +321,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest_second_input_rank { auto input1 = std::make_shared(ov::element::f32, ov::Shape{ 2, 3 }); auto weights = ov::opset1::Constant::create(ov::element::f32, ov::Shape{ 2, 3 }, { 1 }); - auto matmul = std::make_shared(input1, weights); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, weights, no_bias); model_ref = std::make_shared(ov::NodeVector{ matmul }, ov::ParameterVector{ input1 }); } @@ -328,7 +341,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest_second_input_rank auto input1 = std::make_shared(ov::element::f32, ov::Shape{ 5, 2, 3 }); auto weights = ov::opset1::Constant::create(ov::element::f32, ov::Shape{ 1, 2, 3 }, { 1 }); - auto matmul = std::make_shared(input1, weights); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, weights, no_bias); model_ref = std::make_shared(ov::NodeVector{ matmul }, ov::ParameterVector{ input1 }); } } @@ -351,8 +365,9 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest_decompress_conver auto transpose_constant = ov::opset1::Constant::create(ov::element::i32, ov::Shape{ 3 }, { 0, 2, 1 }); auto transpose = std::make_shared(input2, transpose_constant); auto convert = std::make_shared(transpose, ov::element::f32); + auto no_bias = std::make_shared(); - auto matmul = std::make_shared(input1, convert); + auto matmul = std::make_shared(input1, convert, no_bias); model_ref = std::make_shared(ov::NodeVector{ matmul }, ov::ParameterVector{ input1 }); } @@ -378,8 +393,9 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest_decompress_conver auto transpose_constant2 = ov::opset1::Constant::create(ov::element::i32, ov::Shape{ 3 }, { 0, 2, 1 }); auto transpose2 = std::make_shared(input2, transpose_constant2); auto convert = std::make_shared(transpose2, ov::element::f32); + auto no_bias = std::make_shared(); - auto matmul = std::make_shared(transpose1, convert); + auto matmul = std::make_shared(transpose1, convert, no_bias); model_ref = std::make_shared(ov::NodeVector{ matmul }, ov::ParameterVector{ input1 }); } @@ -410,7 +426,8 @@ TEST_F(TransformationTestsF, ConvertMatMulToFullyConnectedTest_compressed_u8_wei auto transpose_const = ov::opset1::Constant::create(ov::element::i32, {3}, {0, 2, 1}); auto transpose = std::make_shared(mul, transpose_const); - auto matmul = std::make_shared(data, transpose); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(data, transpose, no_bias); model_ref = std::make_shared(ov::NodeVector{ matmul }, ov::ParameterVector{ data }); } diff --git a/src/plugins/intel_gpu/tests/unit/transformations/fc_convert_fusion_test.cpp b/src/plugins/intel_gpu/tests/unit/transformations/fc_convert_fusion_test.cpp index 0440918e9f8caf..b9d9f3d85894d6 100644 --- a/src/plugins/intel_gpu/tests/unit/transformations/fc_convert_fusion_test.cpp +++ b/src/plugins/intel_gpu/tests/unit/transformations/fc_convert_fusion_test.cpp @@ -19,6 +19,7 @@ #include "openvino/op/parameter.hpp" #include "intel_gpu/op/fully_connected.hpp" #include "intel_gpu/op/fully_connected_compressed.hpp" +#include "intel_gpu/op/placeholder.hpp" using namespace testing; using namespace ov::intel_gpu; @@ -27,9 +28,10 @@ TEST_F(TransformationTestsF, FullyConnectedConvertFusionTest1) { { auto input = std::make_shared(ov::element::f16, ov::PartialShape{ -1, 16 }); auto weights_const = ov::op::v0::Constant::create(ov::element::u8, ov::Shape{ 32, 16 }, { 1 }); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{ 32, 1 }, { 1 }); auto zp_const = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{ 32, 1 }, { 1 }); - auto fc_compressed = std::make_shared(input, weights_const, scale_const, zp_const); + auto fc_compressed = std::make_shared(input, weights_const, no_bias, scale_const, zp_const); auto convert = std::make_shared(fc_compressed, ov::element::f32); model = std::make_shared(ov::NodeVector{convert}, ov::ParameterVector{input}); @@ -38,9 +40,10 @@ TEST_F(TransformationTestsF, FullyConnectedConvertFusionTest1) { { auto input = std::make_shared(ov::element::f16, ov::PartialShape{ -1, 16 }); auto weights_const = ov::op::v0::Constant::create(ov::element::u8, ov::Shape{ 32, 16 }, { 1 }); + auto no_bias = std::make_shared(); auto scale_const = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{ 32, 1 }, { 1 }); auto zp_const = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{ 32, 1 }, { 1 }); - auto fc_compressed = std::make_shared(input, weights_const, scale_const, zp_const, ov::element::f32); + auto fc_compressed = std::make_shared(input, weights_const, no_bias, scale_const, zp_const, ov::element::f32); model_ref = std::make_shared(ov::NodeVector{ fc_compressed }, ov::ParameterVector{ input }); } @@ -50,7 +53,8 @@ TEST_F(TransformationTestsF, FullyConnectedConvertFusionTest2) { { auto input1 = std::make_shared(ov::element::f16, ov::Shape{3, 2, 2}); auto input2 = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{2, 2}, {1}); - auto matmul = std::make_shared(input1, input2); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias); auto convert = std::make_shared(matmul, ov::element::f32); model = std::make_shared(ov::NodeVector{convert}, ov::ParameterVector{input1}); @@ -59,7 +63,8 @@ TEST_F(TransformationTestsF, FullyConnectedConvertFusionTest2) { { auto input1 = std::make_shared(ov::element::f16, ov::Shape{3, 2, 2}); auto input2 = ov::op::v0::Constant::create(ov::element::f16, ov::Shape{2, 2}, {1}); - auto matmul = std::make_shared(input1, input2, ov::element::f32); + auto no_bias = std::make_shared(); + auto matmul = std::make_shared(input1, input2, no_bias, ov::element::f32); model_ref = std::make_shared(ov::NodeVector{ matmul }, ov::ParameterVector{ input1 }); } diff --git a/src/plugins/intel_gpu/tests/unit/transformations/move_fc_reshape_to_weights.cpp b/src/plugins/intel_gpu/tests/unit/transformations/move_fc_reshape_to_weights.cpp index 8b760790e34aaa..90c8c18c192096 100644 --- a/src/plugins/intel_gpu/tests/unit/transformations/move_fc_reshape_to_weights.cpp +++ b/src/plugins/intel_gpu/tests/unit/transformations/move_fc_reshape_to_weights.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -71,7 +72,9 @@ class MoveFCReshapeToWeightsTests : public TransformationTestsF, public WithPara auto transpose_const = ov::opset1::Constant::create(ov::element::i32, {2}, {1, 0}); weights_path = std::make_shared(weights_path, transpose_const); } - auto fully_connected = std::make_shared(data, weights_path); + auto no_bias = std::make_shared(); + + auto fully_connected = std::make_shared(data, weights_path, no_bias); return std::make_shared(ov::NodeVector{fully_connected}, ov::ParameterVector{data}); } From 0a1b724ed4feb2ef87c4159e044db45cf1bbd12f Mon Sep 17 00:00:00 2001 From: Maciej Smyk Date: Tue, 12 Mar 2024 12:33:00 +0100 Subject: [PATCH 09/15] [DOCS] Rename of operations-specifications section for master (#23404) Port from https://github.com/openvinotoolkit/openvino/pull/23198 Renamed "operations-specifications" file to "operation-specs". --- .../convert-tensorflow-object-detection.rst | 2 +- ...legacy]-troubleshooting-reshape-errors.rst | 10 +- .../legacy-model-optimizer-extensibility.rst | 48 +-- ...gacy]-graph-traversal-and-modification.rst | 44 +-- ...egacy]-graph-transformation-extensions.rst | 10 +- .../[legacy]-model-optimizer-operation.rst | 28 +- .../low-precision-transformations.rst | 62 +-- .../low-precision-model-representation.rst | 24 +- .../documentation/openvino-ir-format.rst | 2 +- ...rmediate-representation-int8-inference.rst | 24 +- .../openvino-ir-format/operation-sets.rst | 14 +- .../available-opsets/opset1.rst | 212 +++++----- .../available-opsets/opset10.rst | 352 ++++++++--------- .../available-opsets/opset11.rst | 352 ++++++++--------- .../available-opsets/opset12.rst | 354 ++++++++--------- .../available-opsets/opset13.rst | 370 ++++++++--------- .../available-opsets/opset14.rst | 372 +++++++++--------- .../available-opsets/opset2.rst | 224 +++++------ .../available-opsets/opset3.rst | 256 ++++++------ .../available-opsets/opset4.rst | 276 ++++++------- .../available-opsets/opset5.rst | 292 +++++++------- .../available-opsets/opset6.rst | 304 +++++++------- .../available-opsets/opset7.rst | 312 +++++++-------- .../available-opsets/opset8.rst | 334 ++++++++-------- .../available-opsets/opset9.rst | 346 ++++++++-------- .../operation-sets/operation-specs.rst | 230 +++++++++++ .../activation/clamp-1.rst | 0 .../activation/elu-1.rst | 0 .../activation/exp-1.rst | 0 .../activation/gelu-2.rst | 0 .../activation/gelu-7.rst | 0 .../activation/hard-sigmoid-1.rst | 0 .../activation/hsigmoid-5.rst | 0 .../activation/hswish-4.rst | 0 .../activation/log-soft-max-5.rst | 0 .../activation/mish-4.rst | 0 .../activation/prelu-1.rst | 0 .../activation/relu-1.rst | 0 .../activation/selu-1.rst | 0 .../activation/sigmoid-1.rst | 0 .../activation/softmax-1.rst | 0 .../activation/softmax-8.rst | 0 .../activation/softplus-4.rst | 0 .../activation/softsign-9.rst | 0 .../activation/swish-4.rst | 0 .../arithmetic/abs-1.rst | 0 .../arithmetic/acos-1.rst | 0 .../arithmetic/acosh-3.rst | 0 .../arithmetic/add-1.rst | 0 .../arithmetic/asin-1.rst | 0 .../arithmetic/asinh-3.rst | 0 .../arithmetic/atan-1.rst | 0 .../arithmetic/atanh-3.rst | 0 .../arithmetic/ceiling-1.rst | 0 .../arithmetic/cos-1.rst | 0 .../arithmetic/cosh-1.rst | 0 .../arithmetic/cumsum-3.rst | 0 .../arithmetic/divide-1.rst | 0 .../arithmetic/erf-1.rst | 0 .../arithmetic/floor-1.rst | 0 .../arithmetic/floormod-1.rst | 0 .../arithmetic/log-1.rst | 0 .../arithmetic/maximum-1.rst | 0 .../arithmetic/minimum-1.rst | 0 .../arithmetic/mod-1.rst | 0 .../arithmetic/multiply-1.rst | 0 .../arithmetic/negative-1.rst | 0 .../arithmetic/power-1.rst | 0 .../arithmetic/round-5.rst | 0 .../arithmetic/sign-1.rst | 0 .../arithmetic/sin-1.rst | 0 .../arithmetic/sinh-1.rst | 0 .../arithmetic/sqrt-1.rst | 0 .../arithmetic/squared-difference-1.rst | 0 .../arithmetic/subtract-1.rst | 0 .../arithmetic/tan-1.rst | 0 .../arithmetic/tanh-1.rst | 0 .../bitwise/bitwise-and-13.rst | 0 .../bitwise/bitwise-not-13.rst | 0 .../bitwise/bitwise-or-13.rst | 0 .../bitwise/bitwise-xor-13.rst | 0 .../comparison/equal-1.rst | 0 .../comparison/greater-1.rst | 0 .../comparison/greater-equal-1.rst | 0 .../comparison/isfinite-10.rst | 0 .../comparison/isinf-10.rst | 0 .../comparison/isnan-10.rst | 0 .../comparison/less-1.rst | 0 .../comparison/lessequal-1.rst | 0 .../comparison/notequal-1.rst | 0 .../condition/bucketize-3.rst | 0 .../condition/if-8.rst | 0 .../condition/nonzero-3.rst | 0 .../condition/select-1.rst | 0 .../convolution/binary-convolution-1.rst | 0 .../convolution/convolution-1.rst | 0 .../convolution-backprop-data-1.rst | 0 .../convolution/deformable-convolution-1.rst | 0 .../convolution/deformable-convolution-8.rst | 0 .../convolution/group-convolution-1.rst | 0 .../group-convolution-backprop-data-1.rst | 0 .../detection/deformable-psroi-pooling-1.rst | 0 .../detection/detectionoutput-1.rst | 0 .../detection/detectionoutput-8.rst | 0 ...erimental-detectron-detection-output-6.rst | 0 ...tron-generate-proposals-single-image-6.rst | 0 ...ental-detectron-prior-grid-generator-6.rst | 0 ...ntal-detectron-roi-feature-extractor-6.rst | 0 .../detection/generate-proposals-9.rst | 0 .../detection/prior-box-1.rst | 0 .../detection/prior-box-8.rst | 0 .../detection/prior-box-clustered-1.rst | 0 .../detection/proposal-1.rst | 0 .../detection/proposal-4.rst | 0 .../detection/psroi-pooling-1.rst | 0 .../detection/region-yolo-1.rst | 0 .../detection/reorg-yolo-1.rst | 0 .../detection/roi-align-3.rst | 0 .../detection/roi-align-9.rst | 0 .../detection/roi-pooling-1.rst | 0 .../generation/eye-9.rst | 0 .../generation/multinomial-13.rst | 0 .../generation/random-uniform-8.rst | 0 .../generation/range-1.rst | 0 .../generation/range-4.rst | 0 .../image/grid-sample-9.rst | 0 .../image/i420-to-bgr-8.rst | 0 .../image/i420-to-rgb-8.rst | 0 .../image/interpolate-1.rst | 0 .../image/interpolate-11.rst | 0 .../image/interpolate-4.rst | 0 .../image/nv12-to-bgr-8.rst | 0 .../image/nv12-to-rgb-8.rst | 0 .../infrastructure/assign-3.rst | 0 .../infrastructure/assign-6.rst | 0 .../infrastructure/constant-1.rst | 0 .../infrastructure/loop-5.rst | 0 .../infrastructure/parameter-1.rst | 0 .../infrastructure/read-value-3.rst | 0 .../infrastructure/read-value-6.rst | 0 .../infrastructure/result-1.rst | 0 .../infrastructure/tensor-iterator-1.rst | 0 .../internal/augru-cell.md | 0 .../internal/augru-sequence.md | 0 .../logical/logical-and-1.rst | 0 .../logical/logical-not-1.rst | 0 .../logical/logical-or-1.rst | 0 .../logical/logical-xor-1.rst | 0 .../matrix/Inverse_14.rst | 0 .../matrix/einsum-7.rst | 0 .../matrix/matmul-1.rst | 0 .../movement/batch-to-space-2.rst | 0 .../movement/broadcast-1.rst | 0 .../movement/broadcast-3.rst | 0 .../movement/concat-1.rst | 0 .../movement/depth-to-space-1.rst | 0 .../movement/extract-image-patches-3.rst | 0 .../movement/gather-1.rst | 0 .../movement/gather-7.rst | 0 .../movement/gather-8.rst | 0 .../movement/gather-elements-6.rst | 0 .../movement/gather-nd-5.rst | 0 .../movement/gather-nd-8.rst | 0 .../movement/gather-tree-1.rst | 0 .../movement/pad-1.rst | 0 .../movement/pad-12.rst | 0 .../movement/reverse-1.rst | 0 .../movement/reverse-sequence-1.rst | 0 .../movement/roll-7.rst | 0 .../movement/scatter-elements-update-12.rst | 0 .../movement/scatter-elements-update-3.rst | 0 .../movement/scatter-nd-update-3.rst | 0 .../movement/scatter-update-3.rst | 0 .../movement/shuffle-channels-1.rst | 0 .../movement/slice-8.rst | 0 .../movement/space-to-batch-2.rst | 0 .../movement/space-to-depth-1.rst | 0 .../movement/split-1.rst | 0 .../movement/strided-slice-1.rst | 0 .../movement/tile-1.rst | 0 .../movement/transpose-1.rst | 0 .../movement/unique-10.rst | 0 .../movement/variadic-split-1.rst | 0 .../normalization/batch-norm-inference-1.rst | 0 .../normalization/batch-norm-inference-5.rst | 0 .../normalization/grn-1.rst | 0 .../normalization/group-normalization-12.rst | 0 .../normalization/lrn-1.rst | 0 .../normalization/mvn-1.rst | 0 .../normalization/mvn-6.rst | 0 .../normalization/normalize-l2-1.rst | 0 .../pooling/adaptive-avg-pool-8.rst | 0 .../pooling/adaptive-max-pool-8.rst | 0 .../pooling/avg-pool-1.rst | 0 .../pooling/max-pool-1.rst | 0 .../pooling/max-pool-8.rst | 0 .../quantization/fake-convert-13.rst | 0 .../quantization/fake-quantize-1.rst | 0 .../reduction/reduce-l1-4.rst | 0 .../reduction/reduce-l2-4.rst | 0 .../reduction/reduce-logical-and-1.rst | 0 .../reduction/reduce-logical-or-1.rst | 0 .../reduction/reduce-max-1.rst | 0 .../reduction/reduce-mean-1.rst | 0 .../reduction/reduce-min-1.rst | 0 .../reduction/reduce-prod-1.rst | 0 .../reduction/reduce-sum-1.rst | 0 .../sequence/ctc-greedy-decoder-1.rst | 0 .../sequence/ctc-greedy-decoder-seq-len-6.rst | 0 .../sequence/ctc-loss-4.rst | 0 .../sequence/gru-cell-3.rst | 0 .../sequence/gru-sequence-5.rst | 0 .../sequence/lstm-cell-1.rst | 0 .../sequence/lstm-sequence-1.rst | 0 .../sequence/one-hot-1.rst | 0 .../sequence/rnn-cell-3.rst | 0 .../sequence/rnn-sequence-5.rst | 0 .../sequence/scaled-dot-product-attention.rst | 0 .../shape/reshape-1.rst | 0 .../shape/shape-of-1.rst | 0 .../shape/shape-of-3.rst | 0 .../shape/squeeze-1.rst | 0 .../shape/unsqueeze-1.rst | 0 .../signals/dft-7.rst | 0 .../signals/idft-7.rst | 0 .../signals/irdft-9.rst | 0 .../signals/rdft-9.rst | 0 .../experimental-detectron-top-krois-6.rst | 0 .../sort/matrix-non-max-suppression-8.rst | 0 .../sort/multiclass-non-max-suppression-8.rst | 0 .../sort/multiclass-non-max-suppression-9.rst | 0 .../sort/nms-rotated-13.rst | 0 .../sort/no-max-suppression-5.rst | 0 .../sort/non-max-suppression-1.rst | 0 .../sort/non-max-suppression-3.rst | 0 .../sort/non-max-suppression-4.rst | 0 .../sort/non-max-suppression-9.rst | 0 .../sort/top-k-1.rst | 0 .../sort/top-k-11.rst | 0 .../sort/top-k-3.rst | 0 .../sparse/embedding-bag-offsets-sum-3.rst | 0 .../sparse/embedding-bag-packed-sum-3.rst | 0 .../sparse/embedding-segments-sum-3.rst | 0 .../type/convert-1.rst | 0 .../type/convert-like-1.rst | 0 .../operations-specifications.rst | 230 ----------- .../running-inference/stateful-models.rst | 4 +- .../obtaining-stateful-openvino-model.rst | 8 +- src/frontends/pytorch/README.md | 2 +- src/plugins/intel_cpu/docs/fake_quantize.md | 2 +- 250 files changed, 2550 insertions(+), 2550 deletions(-) create mode 100644 docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs.rst rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/clamp-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/elu-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/exp-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/gelu-2.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/gelu-7.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/hard-sigmoid-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/hsigmoid-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/hswish-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/log-soft-max-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/mish-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/prelu-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/relu-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/selu-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/sigmoid-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/softmax-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/softmax-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/softplus-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/softsign-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/activation/swish-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/abs-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/acos-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/acosh-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/add-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/asin-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/asinh-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/atan-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/atanh-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/ceiling-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/cos-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/cosh-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/cumsum-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/divide-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/erf-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/floor-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/floormod-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/log-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/maximum-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/minimum-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/mod-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/multiply-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/negative-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/power-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/round-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/sign-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/sin-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/sinh-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/sqrt-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/squared-difference-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/subtract-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/tan-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/arithmetic/tanh-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/bitwise/bitwise-and-13.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/bitwise/bitwise-not-13.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/bitwise/bitwise-or-13.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/bitwise/bitwise-xor-13.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/equal-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/greater-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/greater-equal-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/isfinite-10.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/isinf-10.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/isnan-10.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/less-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/lessequal-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/comparison/notequal-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/condition/bucketize-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/condition/if-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/condition/nonzero-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/condition/select-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/convolution/binary-convolution-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/convolution/convolution-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/convolution/convolution-backprop-data-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/convolution/deformable-convolution-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/convolution/deformable-convolution-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/convolution/group-convolution-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/convolution/group-convolution-backprop-data-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/deformable-psroi-pooling-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/detectionoutput-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/detectionoutput-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/experimental-detectron-detection-output-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/experimental-detectron-generate-proposals-single-image-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/experimental-detectron-prior-grid-generator-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/experimental-detectron-roi-feature-extractor-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/generate-proposals-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/prior-box-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/prior-box-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/prior-box-clustered-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/proposal-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/proposal-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/psroi-pooling-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/region-yolo-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/reorg-yolo-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/roi-align-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/roi-align-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/detection/roi-pooling-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/generation/eye-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/generation/multinomial-13.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/generation/random-uniform-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/generation/range-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/generation/range-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/grid-sample-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/i420-to-bgr-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/i420-to-rgb-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/interpolate-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/interpolate-11.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/interpolate-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/nv12-to-bgr-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/image/nv12-to-rgb-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/assign-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/assign-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/constant-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/loop-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/parameter-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/read-value-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/read-value-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/result-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/infrastructure/tensor-iterator-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/internal/augru-cell.md (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/internal/augru-sequence.md (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/logical/logical-and-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/logical/logical-not-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/logical/logical-or-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/logical/logical-xor-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/matrix/Inverse_14.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/matrix/einsum-7.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/matrix/matmul-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/batch-to-space-2.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/broadcast-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/broadcast-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/concat-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/depth-to-space-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/extract-image-patches-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/gather-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/gather-7.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/gather-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/gather-elements-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/gather-nd-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/gather-nd-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/gather-tree-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/pad-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/pad-12.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/reverse-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/reverse-sequence-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/roll-7.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/scatter-elements-update-12.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/scatter-elements-update-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/scatter-nd-update-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/scatter-update-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/shuffle-channels-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/slice-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/space-to-batch-2.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/space-to-depth-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/split-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/strided-slice-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/tile-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/transpose-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/unique-10.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/movement/variadic-split-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/batch-norm-inference-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/batch-norm-inference-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/grn-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/group-normalization-12.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/lrn-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/mvn-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/mvn-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/normalization/normalize-l2-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/pooling/adaptive-avg-pool-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/pooling/adaptive-max-pool-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/pooling/avg-pool-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/pooling/max-pool-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/pooling/max-pool-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/quantization/fake-convert-13.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/quantization/fake-quantize-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-l1-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-l2-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-logical-and-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-logical-or-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-max-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-mean-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-min-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-prod-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/reduction/reduce-sum-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/ctc-greedy-decoder-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/ctc-greedy-decoder-seq-len-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/ctc-loss-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/gru-cell-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/gru-sequence-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/lstm-cell-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/lstm-sequence-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/one-hot-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/rnn-cell-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/rnn-sequence-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sequence/scaled-dot-product-attention.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/shape/reshape-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/shape/shape-of-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/shape/shape-of-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/shape/squeeze-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/shape/unsqueeze-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/signals/dft-7.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/signals/idft-7.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/signals/irdft-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/signals/rdft-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/experimental-detectron-top-krois-6.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/matrix-non-max-suppression-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/multiclass-non-max-suppression-8.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/multiclass-non-max-suppression-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/nms-rotated-13.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/no-max-suppression-5.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/non-max-suppression-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/non-max-suppression-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/non-max-suppression-4.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/non-max-suppression-9.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/top-k-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/top-k-11.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sort/top-k-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sparse/embedding-bag-offsets-sum-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sparse/embedding-bag-packed-sum-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/sparse/embedding-segments-sum-3.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/type/convert-1.rst (100%) rename docs/articles_en/documentation/openvino-ir-format/operation-sets/{operations-specifications => operation-specs}/type/convert-like-1.rst (100%) delete mode 100644 docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications.rst diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-object-detection.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-object-detection.rst index 7e86344b99524c..3eb5a93e6e0feb 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-object-detection.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-object-detection.rst @@ -16,7 +16,7 @@ Converting TensorFlow Object Detection API Models This guide describes a deprecated conversion method. The guide on the new and recommended method can be found in the :doc:`Python tutorials <../../../../../../learn-openvino/interactive-tutorials-python>`. -* Starting with the 2022.1 release, model conversion API can convert the TensorFlow Object Detection API Faster and Mask RCNNs topologies differently. By default, model conversion adds operation "Proposal" to the generated IR. This operation needs an additional input to the model with name "image_info" which should be fed with several values describing the preprocessing applied to the input image (refer to the :doc:`Proposal <../../../../../openvino-ir-format/operation-sets/operations-specifications/detection/proposal-4>` operation specification for more information). However, this input is redundant for the models trained and inferred with equal size images. Model conversion API can generate IR for such models and insert operation :doc:`DetectionOutput <../../../../../openvino-ir-format/operation-sets/operations-specifications/detection/detectionoutput-1>` instead of ``Proposal``. The `DetectionOutput` operation does not require additional model input "image_info". Moreover, for some models the produced inference results are closer to the original TensorFlow model. In order to trigger new behavior, the attribute "operation_to_add" in the corresponding JSON transformation configuration file should be set to value "DetectionOutput" instead of default one "Proposal". +* Starting with the 2022.1 release, model conversion API can convert the TensorFlow Object Detection API Faster and Mask RCNNs topologies differently. By default, model conversion adds operation "Proposal" to the generated IR. This operation needs an additional input to the model with name "image_info" which should be fed with several values describing the preprocessing applied to the input image (refer to the :doc:`Proposal <../../../../../openvino-ir-format/operation-sets/operation-specs/detection/proposal-4>` operation specification for more information). However, this input is redundant for the models trained and inferred with equal size images. Model conversion API can generate IR for such models and insert operation :doc:`DetectionOutput <../../../../../openvino-ir-format/operation-sets/operation-specs/detection/detectionoutput-1>` instead of ``Proposal``. The `DetectionOutput` operation does not require additional model input "image_info". Moreover, for some models the produced inference results are closer to the original TensorFlow model. In order to trigger new behavior, the attribute "operation_to_add" in the corresponding JSON transformation configuration file should be set to value "DetectionOutput" instead of default one "Proposal". * Starting with the 2021.1 release, model conversion API converts the TensorFlow Object Detection API SSDs, Faster and Mask RCNNs topologies keeping shape-calculating sub-graphs by default, so topologies can be re-shaped in the OpenVINO Runtime using dedicated reshape API. Refer to the :doc:`Using Shape Inference <../../../../../../openvino-workflow/running-inference/changing-input-shape>` guide for more information on how to use this feature. It is possible to change the both spatial dimensions of the input image and batch size. * To generate IRs for TF 1 SSD topologies, model conversion API creates a number of ``PriorBoxClustered`` operations instead of a constant node with prior boxes calculated for the particular input image size. This change allows you to reshape the topology in the OpenVINO Runtime using dedicated API. The reshaping is supported for all SSD topologies except FPNs, which contain hardcoded shapes for some operations preventing from changing topology input shape. diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-troubleshooting-reshape-errors.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-troubleshooting-reshape-errors.rst index 98fe6ecd4cdc96..18cc42f36ad6ec 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-troubleshooting-reshape-errors.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-troubleshooting-reshape-errors.rst @@ -5,8 +5,8 @@ .. meta:: - :description: In OpenVINO™, you can use several methods to address the issues - of non-reshape-able models and shape collision, which prevent + :description: In OpenVINO™, you can use several methods to address the issues + of non-reshape-able models and shape collision, which prevent normal shape propagation. @@ -21,8 +21,8 @@ Operation semantics may impose restrictions on input shapes of the operation. Shape collision during shape propagation may be a sign that new shape does not satisfy the restrictions. Changing the model input shape may result in intermediate operations shape collision. For example, in the following: -* The :doc:`Reshape <../../../openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1>` operation with a hard-coded output shape value, -* The :doc:`MatMul <../../../openvino-ir-format/operation-sets/operations-specifications/matrix/matmul-1>` operation with the ``Const`` second input and this input cannot be resized by spatial dimensions due to operation semantics. +* The :doc:`Reshape <../../../openvino-ir-format/operation-sets/operation-specs/shape/reshape-1>` operation with a hard-coded output shape value, +* The :doc:`MatMul <../../../openvino-ir-format/operation-sets/operation-specs/matrix/matmul-1>` operation with the ``Const`` second input and this input cannot be resized by spatial dimensions due to operation semantics. Model structure and logic should not change significantly after model reshaping. @@ -46,7 +46,7 @@ To fix some operators which prevent normal shape propagation: With ``1:reshaped[2]``, it is required to cut the second input (counting from zero, so ``1:`` means the second input) of the operation named ``reshaped`` and replace it with a ``Parameter`` with shape ``[2]``. With ``->[0 -1]``, this new ``Parameter`` is replaced by a ``Constant`` operator which has the ``[0, -1]`` value. - Since the ``Reshape`` operator has ``0`` and ``-1`` as specific values, it allows propagating shapes freely without losing the intended meaning of ``Reshape``. For more information, see :doc:`the specification <../../../openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1>`. + Since the ``Reshape`` operator has ``0`` and ``-1`` as specific values, it allows propagating shapes freely without losing the intended meaning of ``Reshape``. For more information, see :doc:`the specification <../../../openvino-ir-format/operation-sets/operation-specs/shape/reshape-1>`. .. image:: ../../../../_static/images/batch_relaxation.png diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility.rst index 21c00658044b74..965e6be70f4c80 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility.rst @@ -17,11 +17,11 @@ Legacy Model Optimizer Extensibility The code described here has been **deprecated!** Do not use it to avoid working with a legacy solution. It will be kept for some time to ensure backwards compatibility, but **you should not use** it in contemporary applications. - This guide describes a deprecated TensorFlow conversion method. The guide on the new and recommended method, using a new frontend, can be found in the :doc:`Frontend Extensions <../../openvino-extensibility/frontend-extensions>` article. + This guide describes a deprecated TensorFlow conversion method. The guide on the new and recommended method, using a new frontend, can be found in the :doc:`Frontend Extensions <../../openvino-extensibility/frontend-extensions>` article. This article describes Model Optimizer internals. Altering them may result in application instability, and in case of future changes to the API, lack of backward compatibility. -.. note:: +.. note:: If you want to add support for ONNX, TensorFlow Lite, PaddlePaddle or TensorFlow operations, or you are not familiar with other extension alternatives in OpenVINO, read :doc:`this guide <../../openvino-extensibility>` instead. .. _model-optimizer-extensibility: @@ -32,13 +32,13 @@ This mechanism is a core part of Model Optimizer, as a huge set of examples show There are several cases when the customization is needed: * A model contains operation(s) not known for the Model Optimizer, but these operation(s) could be expressed as a combination of supported operations. In this case, a custom transformation should be implemented to replace unsupported operation(s) with supported ones. -* A model contains a sub-graph of operations that can be replaced with a smaller number of operations to get better performance. This example corresponds to so-called *fusing transformations* (e.g., replacing a sub-graph performing the calculation :math:`x/(1.0+e^{-(beta*x)})` with a single operation of type :doc:`Swish <../../openvino-ir-format/operation-sets/operations-specifications/activation/swish-4>`. +* A model contains a sub-graph of operations that can be replaced with a smaller number of operations to get better performance. This example corresponds to so-called *fusing transformations* (e.g., replacing a sub-graph performing the calculation :math:`x/(1.0+e^{-(beta*x)})` with a single operation of type :doc:`Swish <../../openvino-ir-format/operation-sets/operation-specs/activation/swish-4>`. * A model contains a custom framework operation (the operation that is not a part of an official operation set of the framework) that was developed using the framework extensibility mechanism. In this case, Model Optimizer should know how to handle the operation and generate a corresponding section in an IR for it. It is necessary to figure out how Model Optimizer represents a model in a memory and converts it to an IR before going into details of the Model Optimizer extensibility mechanism. -.. note:: +.. note:: All paths in this article are provided relatively to the Model Optimizer installation directory if not stated otherwise. .. _mo_model_representation_in_memory: @@ -59,7 +59,7 @@ dictionary, and provides many convenient methods to work with the node. For exam name ``my_attr`` can be retrieved from the node with the following code ``my_node.my_attr``, which is equivalent to obtaining attribute with name ``my_attr`` in the ``graph.node[my_node]`` dictionary. For the class implementation details, refer to the ``mo/graph/graph.py`` file. -An operation may have several inputs and outputs. For example, operation :doc:`Split <../../openvino-ir-format/operation-sets/operations-specifications/movement/split-1>` has +An operation may have several inputs and outputs. For example, operation :doc:`Split <../../openvino-ir-format/operation-sets/operation-specs/movement/split-1>` has two inputs: data to split and axis to split along, and variable number of outputs depending on a value of attribute ``num_splits``. Each input data to the operation is passed to a specific operation **input port**. An operation produces the output data from an **output port**. Input and output ports are numbered from 0 independently. Model Optimizer uses @@ -95,7 +95,7 @@ using Python bindings provided with the framework and builds an in-memory repres is a separate loader for each supported framework. These loaders are implemented in the ``extensions/load//loader.py`` files of Model Optimizer. -.. note:: +.. note:: Model Optimizer uses a special parser for Caffe models built on top of the ``caffe.proto`` file. In the case of a model loading failure, Model Optimizer throws an error and requests preparation of the parser that can read the model. For more information on how to prepare the custom Caffe parser, refer to the :ref:`question #1 ` in the :doc:`Model Optimizer FAQ `. The result of a model loading step is a ``Graph`` object, which can be depicted like in the following example: @@ -104,8 +104,8 @@ The result of a model loading step is a ``Graph`` object, which can be depicted Model Optimizer loader saves an operation instance framework description (usually it is a Protobuf message) into a node attribute usually with a name ``pb`` for each operation of an input model. It is important that this is a -**framework-specific** description of an operation. This means that an operation (e.g. -:doc:`Convolution <../../openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-1>` may be represented differently in, for example, Caffe and +**framework-specific** description of an operation. This means that an operation (e.g. +:doc:`Convolution <../../openvino-ir-format/operation-sets/operation-specs/convolution/convolution-1>` may be represented differently in, for example, Caffe and TensorFlow frameworks but performs the same calculations from a mathematical point of view. In the image above, the **Operation 2** has one input and two outputs. The tensor produced from the output **port 0** is @@ -156,7 +156,7 @@ During the front phase, Model Optimizer knows shape of the model inputs and cons transformation. For example, the transformation ``extensions/front/TopKNormalize.py`` removes an attribute ``k`` from a ``TopK`` node and adds an input constant with the value ``k``. The transformation is needed to convert a ``TopK`` operation. It comes from frameworks, where a number of output elements is defined as an attribute of the operation to the -OpenVINO :doc:`TopK <../../openvino-ir-format/operation-sets/operations-specifications/sort/top-k-3>` operation semantic, which requires this value to be a separate input. +OpenVINO :doc:`TopK <../../openvino-ir-format/operation-sets/operation-specs/sort/top-k-3>` operation semantic, which requires this value to be a separate input. It is important to mention that sometimes it seems like transformation cannot be implemented during the front phase because the actual values of inputs or shapes are needed. In fact, manipulations of shapes or values can be implemented @@ -165,9 +165,9 @@ using operations that are added to the graph. Consider the `Flatten `__ operation with a sub-graph of operations performing the following (when ``axis`` is not equal to 0 and 1): -1. Calculate a shape of the ``Flatten`` input tensor, using the :doc:`ShapeOf <../../openvino-ir-format/operation-sets/operations-specifications/shape/shape-of-3>` operation. -2. Get the first ``axis`` elements from the output of ``Shape`` operation and calculate their product, using the :doc:`ReduceProd <../../openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-prod-1>` operation. -3. Concatenate output of the ``ReduceProd`` and constant with the value of ``-1`` (for an explanation of this value refer to the :doc:`Reshape <../../openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1>` specification page). +1. Calculate a shape of the ``Flatten`` input tensor, using the :doc:`ShapeOf <../../openvino-ir-format/operation-sets/operation-specs/shape/shape-of-3>` operation. +2. Get the first ``axis`` elements from the output of ``Shape`` operation and calculate their product, using the :doc:`ReduceProd <../../openvino-ir-format/operation-sets/operation-specs/reduction/reduce-prod-1>` operation. +3. Concatenate output of the ``ReduceProd`` and constant with the value of ``-1`` (for an explanation of this value refer to the :doc:`Reshape <../../openvino-ir-format/operation-sets/operation-specs/shape/reshape-1>` specification page). 4. Use the concatenated value as the second input to the ``Reshape`` operation. It is highly recommended to write shape-agnostic transformations to avoid model reshape-ability issues. For more information related to the reshaping of a model, refer to the :doc:`Using Shape Inference <../../../openvino-workflow/running-inference/changing-input-shape>` guide. @@ -183,22 +183,22 @@ Partial Inference Model Optimizer performs a partial inference of a model during model conversion. This procedure includes output shapes calculation of all operations in a model and constant folding (value calculation for constant sub-graphs). The constant folding is needed for the shape inference because in some cases evaluation of constant sub-graph is needed to calculate -output shapes. For example, the output shape for the :doc:`Reshape <../../openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1>` operation may be -defined as a mathematical expression using the :doc:`ShapeOf <../../openvino-ir-format/operation-sets/operations-specifications/shape/shape-of-3>` operation output. +output shapes. For example, the output shape for the :doc:`Reshape <../../openvino-ir-format/operation-sets/operation-specs/shape/reshape-1>` operation may be +defined as a mathematical expression using the :doc:`ShapeOf <../../openvino-ir-format/operation-sets/operation-specs/shape/shape-of-3>` operation output. .. note:: - Model Optimizer does not fold sub-graphs starting from the :doc:`ShapeOf <../../openvino-ir-format/operation-sets/operations-specifications/shape/shape-of-3>` operation by default because this leads to a model non-reshape-ability (the command-line parameter ``--static_shape`` can override this behavior). For more information related to reshaping of a model, refer to the :doc:`Using Shape Inference <../../../openvino-workflow/running-inference/changing-input-shape>` guide. + Model Optimizer does not fold sub-graphs starting from the :doc:`ShapeOf <../../openvino-ir-format/operation-sets/operation-specs/shape/shape-of-3>` operation by default because this leads to a model non-reshape-ability (the command-line parameter ``--static_shape`` can override this behavior). For more information related to reshaping of a model, refer to the :doc:`Using Shape Inference <../../../openvino-workflow/running-inference/changing-input-shape>` guide. Model Optimizer calculates output shapes for all operations in a model to write them to Intermediate Representation files. -.. note:: - This is a legacy requirement. Starting with IR version 10, OpenVINO Runtime needs to know shapes of the :doc:`Const <../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/constant-1>` and the :doc:`Parameter <../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/parameter-1>` operations only. The OpenVINO Runtime calculates output shapes for all operations in a model, using shapes of :doc:`Parameter <../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/parameter-1>` and :doc:`Const <../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/constant-1>` operations defined with respective operation attributes. +.. note:: + This is a legacy requirement. Starting with IR version 10, OpenVINO Runtime needs to know shapes of the :doc:`Const <../../openvino-ir-format/operation-sets/operation-specs/infrastructure/constant-1>` and the :doc:`Parameter <../../openvino-ir-format/operation-sets/operation-specs/infrastructure/parameter-1>` operations only. The OpenVINO Runtime calculates output shapes for all operations in a model, using shapes of :doc:`Parameter <../../openvino-ir-format/operation-sets/operation-specs/infrastructure/parameter-1>` and :doc:`Const <../../openvino-ir-format/operation-sets/operation-specs/infrastructure/constant-1>` operations defined with respective operation attributes. Model Optimizer inserts **data** nodes to the computation graph before starting the partial inference phase. The data node corresponds to the specific tensor produced with the operation. Each data node contains two attributes: ``shape``, containing the shape of the tensor, and ``value``, which may contain the actual value of the tensor. The value for a ``value`` attribute is equal to ``None`` if this tensor value cannot be calculated. This happens in two cases: when a tensor value -depends on a values passed to the :doc:`Parameter <../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/parameter-1>` operation of a model or +depends on a values passed to the :doc:`Parameter <../../openvino-ir-format/operation-sets/operation-specs/infrastructure/parameter-1>` operation of a model or Model Optimizer does not have value propagation implementation for the operation. Before running partial inference, the graph can be depicted like in the following example: @@ -223,12 +223,12 @@ refer to the :doc:`Model Optimizer Operation ` operation (the full version is +example of the shape infer function for the :doc:`Reshape <../../openvino-ir-format/operation-sets/operation-specs/shape/reshape-1>` operation (the full version is available in the ``mo/ops/reshape.py`` file): .. code-block:: py :force: - + @staticmethod def infer(node: Node): name = node.soft_get('name', node.id) @@ -272,13 +272,13 @@ There are several middle transformations responsible for changing model layout f This layout change is disabled automatically if the model does not have operations that OpenVINO™ needs to execute in the NCHW layout, for example, Convolutions in NHWC layout. -For more details on how it works, refer to the source code of the transformations mentioned in the below summary of the process: +For more details on how it works, refer to the source code of the transformations mentioned in the below summary of the process: 1. Model Optimizer changes output shapes of most of operations producing 4D and 5D (four dimensional and five dimensional) tensors as if they were in NHWC layout to NCHW layout: ``nchw_shape = np.array(nhwc_shape)[0, 3, 1, 2]`` for 4D and ``nchw_shape = np.array(nhwc_shape)[0, 4, 1, 2, 3]`` for 5D. This permutation does not happen for some operations with specific conditions identified during a model conversion. -2. Model Optimizer inserts :doc:`Gather <../../openvino-ir-format/operation-sets/operations-specifications/movement/gather-1>` operations to the sub-graph relates to shapes calculation in order to perform shape calculation in a correct layout. -3. Model Optimizer inserts :doc:`Transpose <../../openvino-ir-format/operation-sets/operations-specifications/movement/transpose-1>` operations for some operations with specific conditions, identified during a model conversion, to produce correct inference results. +2. Model Optimizer inserts :doc:`Gather <../../openvino-ir-format/operation-sets/operation-specs/movement/gather-1>` operations to the sub-graph relates to shapes calculation in order to perform shape calculation in a correct layout. +3. Model Optimizer inserts :doc:`Transpose <../../openvino-ir-format/operation-sets/operation-specs/movement/transpose-1>` operations for some operations with specific conditions, identified during a model conversion, to produce correct inference results. -The main transformations responsible for a layout change are: +The main transformations responsible for a layout change are: * ``extensions/middle/ApplyPermutations.py`` * ``extensions/middle/InsertLayoutPropagationTransposes.py`` diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-graph-traversal-and-modification.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-graph-traversal-and-modification.rst index 6de016554be655..1c8aa73b014cbd 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-graph-traversal-and-modification.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-graph-traversal-and-modification.rst @@ -4,44 +4,44 @@ =========================================== .. meta:: - :description: Learn about deprecated APIs and the Port and Connection classes + :description: Learn about deprecated APIs and the Port and Connection classes in Model Optimizer used for graph traversal and transformation. .. danger:: The code described here has been **deprecated!** Do not use it to avoid working with a legacy solution. It will be kept for some time to ensure backwards compatibility, but **you should not use** it in contemporary applications. - This guide describes a deprecated TensorFlow conversion method. The guide on the new and recommended method, using a new frontend, can be found in the :doc:`Frontend Extensions <../../../openvino-extensibility/frontend-extensions>` article. + This guide describes a deprecated TensorFlow conversion method. The guide on the new and recommended method, using a new frontend, can be found in the :doc:`Frontend Extensions <../../../openvino-extensibility/frontend-extensions>` article. There are three APIs for a graph traversal and transformation used in the Model Optimizer: 1. The API provided with the ``networkx`` Python library for the ``networkx.MultiDiGraph`` class, which is the base class for -the ``mo.graph.graph.Graph`` object. For example, the following methods belong to this API level: +the ``mo.graph.graph.Graph`` object. For example, the following methods belong to this API level: * ``graph.add_edges_from([list])``, -* ``graph.add_node(x, attrs)``, -* ``graph.out_edges(node_id)`` +* ``graph.add_node(x, attrs)``, +* ``graph.out_edges(node_id)`` * other methods where ``graph`` is a an instance of the ``networkx.MultiDiGraph`` class. -**This is the lowest-level API. Avoid using it in the Model Optimizer transformations**. For more details, refer to the :ref:`Model Representation in Memory ` section. +**This is the lowest-level API. Avoid using it in the Model Optimizer transformations**. For more details, refer to the :ref:`Model Representation in Memory ` section. 2. The API built around the ``mo.graph.graph.Node`` class. The ``Node`` class is the primary class to work with graph nodes and their attributes. Examples of such methods and functions are: -* ``node.in_node(y)``, +* ``node.in_node(y)``, * ``node.out_node(x)``, * ``node.get_outputs()``, * ``node.insert_node_after(n1, y)``, * ``create_edge(n1, n2)`` -**There are some "Node" class methods not recommended for use and some functions defined in the mo.graph.graph have been deprecated**. For more details, refer to the ``mo/graph/graph.py`` file. +**There are some "Node" class methods not recommended for use and some functions defined in the mo.graph.graph have been deprecated**. For more details, refer to the ``mo/graph/graph.py`` file. 3. The high-level API called Model Optimizer Graph API, which uses ``mo.graph.graph.Graph``, ``mo.graph.port.Port`` and ``mo.graph.connection.Connection`` classes. For example, the following methods belong to this API level: -* ``node.in_port(x)``, -* ``node.out_port(y)``, -* ``port.get_connection()``, +* ``node.in_port(x)``, +* ``node.out_port(y)``, +* ``port.get_connection()``, * ``connection.get_source()``, * ``connection.set_destination(dest_port)`` @@ -49,9 +49,9 @@ and their attributes. Examples of such methods and functions are: The main benefit of using the Model Optimizer Graph API is that it hides some internal implementation details (the fact that the graph contains data nodes), provides API to perform safe and predictable graph manipulations, and adds operation -semantic to the graph. This is achieved with introduction of concepts of ports and connections. +semantic to the graph. This is achieved with introduction of concepts of ports and connections. -.. note:: +.. note:: This article is dedicated to the Model Optimizer Graph API only and does not cover other two non-recommended APIs. .. _mo_intro_ports: @@ -60,22 +60,22 @@ semantic to the graph. This is achieved with introduction of concepts of ports a Ports ===== -An operation semantic describes how many inputs and outputs the operation has. For example, -:doc:`Parameter <../../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/parameter-1>` and :doc:`Const <../../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/constant-1>` operations have no -inputs and have one output, :doc:`ReLU <../../../openvino-ir-format/operation-sets/operations-specifications/activation/relu-1>` operation has one input and one output, -:doc:`Split <../../../openvino-ir-format/operation-sets/operations-specifications/movement/split-1>` operation has 2 inputs and a variable number of outputs depending on the value of the +An operation semantic describes how many inputs and outputs the operation has. For example, +:doc:`Parameter <../../../openvino-ir-format/operation-sets/operation-specs/infrastructure/parameter-1>` and :doc:`Const <../../../openvino-ir-format/operation-sets/operation-specs/infrastructure/constant-1>` operations have no +inputs and have one output, :doc:`ReLU <../../../openvino-ir-format/operation-sets/operation-specs/activation/relu-1>` operation has one input and one output, +:doc:`Split <../../../openvino-ir-format/operation-sets/operation-specs/movement/split-1>` operation has 2 inputs and a variable number of outputs depending on the value of the attribute ``num_splits``. Each operation node in the graph (an instance of the ``Node`` class) has 0 or more input and output ports (instances of the ``mo.graph.port.Port`` class). The ``Port`` object has several attributes: * ``node`` - the instance of the ``Node`` object the port belongs to. -* ``idx`` - the port number. Input and output ports are numbered independently, starting from ``0``. Thus, -:doc:`ReLU <../../../openvino-ir-format/operation-sets/operations-specifications/activation/relu-1>` operation has one input port (with index ``0``) and one output port (with index ``0``). +* ``idx`` - the port number. Input and output ports are numbered independently, starting from ``0``. Thus, +:doc:`ReLU <../../../openvino-ir-format/operation-sets/operation-specs/activation/relu-1>` operation has one input port (with index ``0``) and one output port (with index ``0``). * ``type`` - the type of the port. Could be equal to either ``"in"`` or ``"out"``. * ``data`` - the object that should be used to get attributes of the corresponding data node. This object has methods ``get_shape()`` / ``set_shape()`` and ``get_value()`` / ``set_value()`` to get/set shape/value of the corresponding data node. For example, ``in_port.data.get_shape()`` returns an input shape of a tensor connected to input port ``in_port`` (``in_port.type == 'in'``), ``out_port.data.get_value()`` returns a value of a tensor produced from output port ``out_port`` (``out_port.type == 'out'``). -.. note:: +.. note:: Functions ``get_shape()`` and ``get_value()`` return ``None`` until the partial inference phase. For more information about model conversion phases, refer to the :ref:`Model Conversion Pipeline `. For information about partial inference phase, see the :ref:`Partial Inference `. There are several methods of the ``Node`` class to get the instance of a corresponding port: @@ -136,7 +136,7 @@ For example, applying the following two methods to the graph above will result i :scale: 80 % :align: center -.. note:: +.. note:: For a full list of available methods, refer to the ``Node`` class implementation in the ``mo/graph/graph.py`` and ``Port`` class implementation in the ``mo/graph/port.py`` files. =========== @@ -175,7 +175,7 @@ the connection is currently connected and connects the connection source port to Note that connection works seamlessly during front, middle, and back phases and hides the fact that the graph structure is different. -.. note:: +.. note:: For a full list of available methods, refer to the ``Connection`` class implementation in the ``mo/graph/connection.py`` file. ==================== diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst index 3cda2def673da1..3e18a780aab93b 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst @@ -19,7 +19,7 @@ All classes have the following common class attributes and methods: 1. The ``enabled`` attribute specifies whether the transformation is enabled or not. The value can be changed during runtime to enable or disable execution of the transformation during a model conversion. Default value is ``True``. 2. The ``id`` attribute specifies a unique transformation string identifier. This transformation identifier can be used to enable (disable) the transformation by setting environment variable ``MO_ENABLED_TRANSFORMS`` (``MO_DISABLED_TRANSFORMS``) with a comma separated list of ``ids``. The environment variables override the value of the ``enabled`` attribute of the transformation. Instead of using ``id`` attribute value you can add fully defined class name to ``MO_ENABLED_TRANSFORMS`` (``MO_DISABLED_TRANSFORMS``) variable, ``extensions.back.NonmalizeToNormalizeL2.NormalizeToNormalizeL2`` for example. It is an optional attribute. -3. The ``run_not_recursively`` attribute specifies whether the transformation should be executed in the sub-graphs, for example, body of the :doc:`TensorIterator <../../../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/tensor-iterator-1>` and the :doc:`Loop <../../../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/loop-5>`. Default value is ``True``. +3. The ``run_not_recursively`` attribute specifies whether the transformation should be executed in the sub-graphs, for example, body of the :doc:`TensorIterator <../../../../openvino-ir-format/operation-sets/operation-specs/infrastructure/tensor-iterator-1>` and the :doc:`Loop <../../../../openvino-ir-format/operation-sets/operation-specs/infrastructure/loop-5>`. Default value is ``True``. 4. The ``force_clean_up`` attribute specifies whether the graph clean up should be executed after the transformation. The graph cleanup removes nodes of the graph not reachable from the model inputs. Default value is ``False``. 5. The ``force_shape_inference`` attribute specifies whether the nodes marked with ``need_shape_inference`` attribute equal to ``True`` should be re-inferred after the transformation. Model Optimizer sets this attribute automatically for nodes, input(s) of which were changed during the transformation, or you can set this attribute manually in the transformation for the specific nodes. Default value is ``False``. 6. Attribute ``graph_condition`` specifies a list of functions with one parameter -- ``Graph`` object. The transformation is executed if and only if all functions return ``True``. If the attribute is not set, no check is performed. @@ -89,7 +89,7 @@ The sub-graph pattern is defined in the ``pattern()`` function. This function sh * The third element (optional) is the dictionary with expected edge attributes. This dictionary usually contains attributes like ``in`` and ``out``, defining input and output ports. Consider the example of a front transformation implemented in the ``extensions/front/Mish_fusion.py`` file performing -fusing of the sub-graph defining the :doc:`Mish <../../../../openvino-ir-format/operation-sets/operations-specifications/activation/mish-4>` activation function into a single +fusing of the sub-graph defining the :doc:`Mish <../../../../openvino-ir-format/operation-sets/operation-specs/activation/mish-4>` activation function into a single operation: .. code-block:: py @@ -210,7 +210,7 @@ Then, Model Optimizer executes the ``find_and_replace_pattern(self, graph)`` met provides a ``Graph`` object as an input. Consider the example of a generic front transformation from the ``extensions/front/SqueezeNormalize.py`` file performing -normalization of the :doc:`Squeeze <../../../../openvino-ir-format/operation-sets/operations-specifications/shape/squeeze-1>` operation. Older version of the operation had a list of +normalization of the :doc:`Squeeze <../../../../openvino-ir-format/operation-sets/operation-specs/shape/squeeze-1>` operation. Older version of the operation had a list of axes to squeeze as an attribute, but now it is a separate input. For backward compatibility, the Model Optimizer operation supports both semantics. Before IR generation, however, the operation should be normalized according to the specification. @@ -397,7 +397,7 @@ base class and works as follows: 1. Starts a graph traversal from every start node following the direction of the graph edges. The search stops in an end node or in the case of a node without consumers. All visited nodes are added to the matched sub-graph. 2. Starts another graph traversal from each non-start node of the sub-graph, i.e. every node except nodes from the "start" list. In this step, the edges are traversed in the opposite edge direction. All newly visited nodes are added to the matched sub-graph. This step is needed to add nodes required for calculation values of internal nodes of the matched sub-graph. 3. Checks that all "end" nodes were reached from "start" nodes. If not, it exits with an error. - 4. Checks that there are no :doc:`Parameter <../../../../openvino-ir-format/operation-sets/operations-specifications/infrastructure/parameter-1>` operations among added nodes. If they exist, the sub-graph depends on the inputs of the model. Such configuration is considered incorrect so Model Optimizer exits with an error. + 4. Checks that there are no :doc:`Parameter <../../../../openvino-ir-format/operation-sets/operation-specs/infrastructure/parameter-1>` operations among added nodes. If they exist, the sub-graph depends on the inputs of the model. Such configuration is considered incorrect so Model Optimizer exits with an error. This algorithm finds all nodes "between" start and end nodes and nodes needed for calculation of non-input nodes of the matched sub-graph. @@ -447,7 +447,7 @@ respectively. The ``include_inputs_to_sub_graph`` and ``include_outputs_to_sub_graph`` parameters are redundant and should be always equal to ``true``. .. note:: - This sub-graph match algorithm has a limitation that each start node must have only one input. Therefore, it is not possible to specify, for example, the :doc:`Convolution <../../../../openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-1>` node as input because it has two inputs: data tensor and tensor with weights. + This sub-graph match algorithm has a limitation that each start node must have only one input. Therefore, it is not possible to specify, for example, the :doc:`Convolution <../../../../openvino-ir-format/operation-sets/operation-specs/convolution/convolution-1>` node as input because it has two inputs: data tensor and tensor with weights. For other examples of transformations with points, refer to the :doc:`Converting TensorFlow Object Detection API Models <../../legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-object-detection>` guide. diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-model-optimizer-operation.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-model-optimizer-operation.rst index 13f548e878cf9b..a60ec26dfcd985 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-model-optimizer-operation.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-model-optimizer-operation.rst @@ -4,15 +4,15 @@ =================================== .. meta:: - :description: Learn about the Op class, that contains operation attributes, - which are set to a node of the graph created during model + :description: Learn about the Op class, that contains operation attributes, + which are set to a node of the graph created during model conversion with Model Optimizer. .. danger:: The code described here has been **deprecated!** Do not use it to avoid working with a legacy solution. It will be kept for some time to ensure backwards compatibility, but **you should not use** it in contemporary applications. - This guide describes a deprecated TensorFlow conversion method. The guide on the new and recommended method, using a new frontend, can be found in the :doc:`Frontend Extensions <../../../../openvino-extensibility/frontend-extensions>` article. + This guide describes a deprecated TensorFlow conversion method. The guide on the new and recommended method, using a new frontend, can be found in the :doc:`Frontend Extensions <../../../../openvino-extensibility/frontend-extensions>` article. Model Optimizer defines a ``mo.ops.Op`` class (``Op`` will be used later in the document to be short), which is a base class for an operation used in the Model Optimizer. The instance of the ``Op`` class serves several purposes: @@ -33,27 +33,27 @@ There are a number of common attributes used in the operations. Below is the lis * ``id`` — **(Mandatory)** — unique identifier of a node in a graph. Generated automatically, equal to the number of nodes in the graph plus 1 if not specified. * ``name`` — **(Mandatory)** — name of the operation. Generated automatically, equal to the ``id`` if not specified. * ``type`` — **(Mandatory)** — type of the operation according to the :doc:`opset specification <../../../../openvino-ir-format/operation-sets/available-opsets>`. For the internal Model Optimizer operations, this attribute should be set to ``None``. The model conversion fails if an operation with ``type`` equal to ``None`` comes to the IR emitting phase. -* ``version`` — **(Mandatory)** — the operation set (opset) name the operation belongs to. If not specified, Model Optimizer sets it equal to ``experimental``. For more information about operation sets, refer to :doc:`OpenVINO Model Representation <../../../../../openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation>` section. +* ``version`` — **(Mandatory)** — the operation set (opset) name the operation belongs to. If not specified, Model Optimizer sets it equal to ``experimental``. For more information about operation sets, refer to :doc:`OpenVINO Model Representation <../../../../../openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation>` section. * ``op`` — Model Optimizer type of the operation. In many cases, the value of ``type`` is equal to the value of ``op``. However, when Model Optimizer cannot instantiate the opset operation during model loading, it creates an instance of an internal operation. Thus, the attribute ``op`` is used as a type of this internal operation. Later in the pipeline, the node created from an internal operation will be replaced during front, middle or back phase with node(s) created from the opset. * ``infer`` — the attribute defines a function calculating output tensor(s) shape and optional value(s). The attribute may be set to ``None`` for the internal Model Optimizer operations used during the front phase only. For more information about the shape inference function, refer to the :ref:`Partial Inference `. * ``type_infer`` — the attribute defines a function calculating output tensor(s) data type. If the attribute is not defined, the default function is used. The function checks if the ``data_type`` node attribute is set and then propagates this type to the output tensor from the **port 0**. Otherwise, it propagates the data type of the tensor coming into the input **port 0** to the output tensor from the **port 0**. * ``in_ports_count`` — default number of input ports to be created for the operation. Additional ports can be created or redundant ports can be removed using dedicated ``Node`` class API methods. * ``out_ports_count`` — default number of output ports to be created for the operation. Additional ports can be created or redundant ports can be removed using dedicated ``Node`` class API methods. -Below is an example of the Model Optimizer class for the :doc:`SoftMax <../../../../openvino-ir-format/operation-sets/operations-specifications/activation/softmax-1>` operation from +Below is an example of the Model Optimizer class for the :doc:`SoftMax <../../../../openvino-ir-format/operation-sets/operation-specs/activation/softmax-1>` operation from the ``mo/ops/softmax.py`` file with the comments in code. .. code-block:: py - + class Softmax(Op): # The class attribute defines a name of the operation so the operation class can be obtained using the # "Op.get_op_class_by_name()" static method op = 'SoftMax' - + # The operation works as an extractor by default. This is a legacy behavior, currently not recommended for use, # thus "enabled" class attribute is set to False. The recommended approach is to use dedicated extractor extension. enabled = False - + def __init__(self, graph: Graph, attrs: dict): super().__init__(graph, { # The constructor of the base class Op is called with additional default attributes. 'type': __class__.op, # The operation is from the opset so the type is set to 'SoftMax'. @@ -64,14 +64,14 @@ the ``mo/ops/softmax.py`` file with the comments in code. 'in_ports_count': 1, # The operation has one input. 'out_ports_count': 1, # The operation produces one output. }, attrs) - + # The method returns operation specific attributes list. This method is important when implementing # extractor inherited from CaffePythonFrontExtractorOp class to extract attribute for Caffe Python operation. # However, it is currently used interchangeably with the "backend_attrs()" method. If the "backend_attrs()" is not used, # then the "supported_attrs()" is used instead. In this particular case, the operation has just one attribute "axis". def supported_attrs(self): return ['axis'] - + @staticmethod def infer(node: Node): "some code calculating output shape and values" @@ -80,18 +80,18 @@ There is a dedicated method called ``backend_attrs()`` defining a list of attrib example from the ``mo/ops/pooling.py`` file: .. code-block:: py - + def backend_attrs(self): return [ ('strides', lambda node: ','.join(map(str, node['stride'][node.spatial_dims]))), ('kernel', lambda node: ','.join(map(str, node['window'][node.spatial_dims]))), - + ('pads_begin', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 0)))), ('pads_end', lambda node: ','.join(map(str, get_backend_pad(node.pad, node.spatial_dims, 1)))), - + ('pool-method', 'pool_method'), ('exclude-pad', 'exclude_pad'), - + 'rounding_type', 'auto_pad', ] diff --git a/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations.rst b/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations.rst index ec2e1a66870c39..0bc70dd56dc241 100644 --- a/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations.rst +++ b/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations.rst @@ -43,37 +43,37 @@ Input model requirements LPT transformations propagate dequantization operations through the following operations: -* :doc:`Add-1 <../../../openvino-ir-format/operation-sets/operations-specifications/arithmetic/add-1>` -* :doc:`AvgPool-1 <../../../openvino-ir-format/operation-sets/operations-specifications/pooling/avg-pool-1>` -* :doc:`Clamp-1 <../../../openvino-ir-format/operation-sets/operations-specifications/activation/clamp-1>` -* :doc:`Concat-1 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/concat-1>` -* :doc:`Convolution-1 <../../../openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData-1 <../../../openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`DepthToSpace-1 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/depth-to-space-1>` -* :doc:`FakeQuantize-1 <../../../openvino-ir-format/operation-sets/operations-specifications/quantization/fake-quantize-1>` -* :doc:`GroupConvolution-1 <../../../openvino-ir-format/operation-sets/operations-specifications/convolution/group-convolution-1>` -* :doc:`Interpolate-1 <../../../openvino-ir-format/operation-sets/operations-specifications/image/interpolate-1>` -* :doc:`Interpolate-4 <../../../openvino-ir-format/operation-sets/operations-specifications/image/interpolate-4>` -* :doc:`MatMul-1 <../../../openvino-ir-format/operation-sets/operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool-1 <../../../openvino-ir-format/operation-sets/operations-specifications/pooling/max-pool-1>` -* :doc:`Multiply-1 <../../../openvino-ir-format/operation-sets/operations-specifications/arithmetic/multiply-1>` -* :doc:`MVN-1 <../../../openvino-ir-format/operation-sets/operations-specifications/normalization/mvn-1>` -* :doc:`NormalizeL2-1 <../../../openvino-ir-format/operation-sets/operations-specifications/normalization/normalize-l2-1>` -* :doc:`PRelu-1 <../../../openvino-ir-format/operation-sets/operations-specifications/activation/prelu-1>` -* :doc:`ReduceMax-1 <../../../openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean-1 <../../../openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin-1 <../../../openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceSum-1 <../../../openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-sum-1>` -* :doc:`Relu-1 <../../../openvino-ir-format/operation-sets/operations-specifications/activation/relu-1>` -* :doc:`Reshape-1 <../../../openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1>` -* :doc:`Split-1 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/split-1>` -* :doc:`Squeeze-1 <../../../openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1>` -* :doc:`StridedSlice-1 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/strided-slice-1>` -* :doc:`Transpose-1 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/transpose-1>` -* :doc:`Gather-7 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/gather-7>` -* :doc:`Gather-8 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/gather-8>` -* :doc:`Unsqueeze-1 <../../../openvino-ir-format/operation-sets/operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit-1 <../../../openvino-ir-format/operation-sets/operations-specifications/movement/variadic-split-1>` +* :doc:`Add-1 <../../../openvino-ir-format/operation-sets/operation-specs/arithmetic/add-1>` +* :doc:`AvgPool-1 <../../../openvino-ir-format/operation-sets/operation-specs/pooling/avg-pool-1>` +* :doc:`Clamp-1 <../../../openvino-ir-format/operation-sets/operation-specs/activation/clamp-1>` +* :doc:`Concat-1 <../../../openvino-ir-format/operation-sets/operation-specs/movement/concat-1>` +* :doc:`Convolution-1 <../../../openvino-ir-format/operation-sets/operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData-1 <../../../openvino-ir-format/operation-sets/operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`DepthToSpace-1 <../../../openvino-ir-format/operation-sets/operation-specs/movement/depth-to-space-1>` +* :doc:`FakeQuantize-1 <../../../openvino-ir-format/operation-sets/operation-specs/quantization/fake-quantize-1>` +* :doc:`GroupConvolution-1 <../../../openvino-ir-format/operation-sets/operation-specs/convolution/group-convolution-1>` +* :doc:`Interpolate-1 <../../../openvino-ir-format/operation-sets/operation-specs/image/interpolate-1>` +* :doc:`Interpolate-4 <../../../openvino-ir-format/operation-sets/operation-specs/image/interpolate-4>` +* :doc:`MatMul-1 <../../../openvino-ir-format/operation-sets/operation-specs/matrix/matmul-1>` +* :doc:`MaxPool-1 <../../../openvino-ir-format/operation-sets/operation-specs/pooling/max-pool-1>` +* :doc:`Multiply-1 <../../../openvino-ir-format/operation-sets/operation-specs/arithmetic/multiply-1>` +* :doc:`MVN-1 <../../../openvino-ir-format/operation-sets/operation-specs/normalization/mvn-1>` +* :doc:`NormalizeL2-1 <../../../openvino-ir-format/operation-sets/operation-specs/normalization/normalize-l2-1>` +* :doc:`PRelu-1 <../../../openvino-ir-format/operation-sets/operation-specs/activation/prelu-1>` +* :doc:`ReduceMax-1 <../../../openvino-ir-format/operation-sets/operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean-1 <../../../openvino-ir-format/operation-sets/operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin-1 <../../../openvino-ir-format/operation-sets/operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceSum-1 <../../../openvino-ir-format/operation-sets/operation-specs/reduction/reduce-sum-1>` +* :doc:`Relu-1 <../../../openvino-ir-format/operation-sets/operation-specs/activation/relu-1>` +* :doc:`Reshape-1 <../../../openvino-ir-format/operation-sets/operation-specs/shape/reshape-1>` +* :doc:`Split-1 <../../../openvino-ir-format/operation-sets/operation-specs/movement/split-1>` +* :doc:`Squeeze-1 <../../../openvino-ir-format/operation-sets/operation-specs/shape/reshape-1>` +* :doc:`StridedSlice-1 <../../../openvino-ir-format/operation-sets/operation-specs/movement/strided-slice-1>` +* :doc:`Transpose-1 <../../../openvino-ir-format/operation-sets/operation-specs/movement/transpose-1>` +* :doc:`Gather-7 <../../../openvino-ir-format/operation-sets/operation-specs/movement/gather-7>` +* :doc:`Gather-8 <../../../openvino-ir-format/operation-sets/operation-specs/movement/gather-8>` +* :doc:`Unsqueeze-1 <../../../openvino-ir-format/operation-sets/operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit-1 <../../../openvino-ir-format/operation-sets/operation-specs/movement/variadic-split-1>` If operation is not supported by LPT then dequantization operation will not be propagated, input tensor precisions will not be changed to low precision and operation will be executed in original precision. diff --git a/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/quantized-models/low-precision-model-representation.rst b/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/quantized-models/low-precision-model-representation.rst index 10b2a3f4af1dcb..2435aebd6a4242 100644 --- a/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/quantized-models/low-precision-model-representation.rst +++ b/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/quantized-models/low-precision-model-representation.rst @@ -3,8 +3,8 @@ Representation of low-precision models ====================================== -The goal of this document is to describe how optimized models are represented in OpenVINO Intermediate Representation (IR) and provide guidance -on interpretation rules for such models at runtime. +The goal of this document is to describe how optimized models are represented in OpenVINO Intermediate Representation (IR) and provide guidance +on interpretation rules for such models at runtime. Currently, there are two groups of optimization methods that can influence on the IR after applying them to the full-precision model: @@ -15,21 +15,21 @@ Currently, there are two groups of optimization methods that can influence on th Representation of quantized models ################################### -The OpenVINO Toolkit represents all the quantized models using the so-called FakeQuantize operation (see the description in -:doc:`this document <../../../../openvino-ir-format/operation-sets/operations-specifications/quantization/fake-quantize-1>`). This operation is very expressive and allows mapping values from -arbitrary input and output ranges. The whole idea behind that is quite simple: we project (discretize) the input values to the low-precision -data type using affine transformation (with clamp and rounding) and then reproject discrete values back to the original range and data type. +The OpenVINO Toolkit represents all the quantized models using the so-called FakeQuantize operation (see the description in +:doc:`this document <../../../../openvino-ir-format/operation-sets/operation-specs/quantization/fake-quantize-1>`). This operation is very expressive and allows mapping values from +arbitrary input and output ranges. The whole idea behind that is quite simple: we project (discretize) the input values to the low-precision +data type using affine transformation (with clamp and rounding) and then reproject discrete values back to the original range and data type. It can be considered as an emulation of the quantization process which happens at runtime. -In order to be able to execute a particular DL operation in low-precision all its inputs should be quantized i.e. should have FakeQuantize -between operation and data blobs. The figure below shows an example of quantized Convolution which contains two FakeQuantize nodes: one for +In order to be able to execute a particular DL operation in low-precision all its inputs should be quantized i.e. should have FakeQuantize +between operation and data blobs. The figure below shows an example of quantized Convolution which contains two FakeQuantize nodes: one for weights and one for activations (bias is quantized using the same parameters). -.. image:: ../../../../../_static/images/IE_PLUGIN_DG/images/quantized_convolution.png +.. image:: ../../../../../_static/images/IE_PLUGIN_DG/images/quantized_convolution.png -Starting from OpenVINO 2020.2 release all the quantized models are represented in the compressed form. It means that the weights -of low-precision operations are converted into the target precision (e.g. INT8). It helps to substantially reduce the model size. -The rest of the parameters can be represented in FLOAT32 or FLOAT16 precision depending on the input full-precision model used in +Starting from OpenVINO 2020.2 release all the quantized models are represented in the compressed form. It means that the weights +of low-precision operations are converted into the target precision (e.g. INT8). It helps to substantially reduce the model size. +The rest of the parameters can be represented in FLOAT32 or FLOAT16 precision depending on the input full-precision model used in the quantization process. Fig. 2 below shows an example of the part of the compressed IR. .. image:: ../../../../../_static/images/IE_PLUGIN_DG/images/quantized_model_example.png diff --git a/docs/articles_en/documentation/openvino-ir-format.rst b/docs/articles_en/documentation/openvino-ir-format.rst index 47d366fe55fd49..708209dc50a4de 100644 --- a/docs/articles_en/documentation/openvino-ir-format.rst +++ b/docs/articles_en/documentation/openvino-ir-format.rst @@ -15,7 +15,7 @@ OpenVINO IR format openvino-ir-format/operation-sets openvino-ir-format/operation-sets/available-opsets - openvino-ir-format/operation-sets/operations-specifications + openvino-ir-format/operation-sets/operation-specs openvino-ir-format/operation-sets/broadcast-rules openvino-ir-format/intermediate-representation-int8-inference diff --git a/docs/articles_en/documentation/openvino-ir-format/intermediate-representation-int8-inference.rst b/docs/articles_en/documentation/openvino-ir-format/intermediate-representation-int8-inference.rst index 72206086dab049..d9557f98827aa0 100644 --- a/docs/articles_en/documentation/openvino-ir-format/intermediate-representation-int8-inference.rst +++ b/docs/articles_en/documentation/openvino-ir-format/intermediate-representation-int8-inference.rst @@ -5,14 +5,14 @@ Intermediate Representation Suitable for INT8 Inference .. meta:: - :description: Learn how to generate a Low Precision IR - Intermediate - Representation suitable for INT8 low precision inference on CPU + :description: Learn how to generate a Low Precision IR - Intermediate + Representation suitable for INT8 low precision inference on CPU and GPU devices. Introduction ############ -OpenVINO Runtime CPU and GPU devices can infer models in low precision. +OpenVINO Runtime CPU and GPU devices can infer models in low precision. For more details, refer to the :doc:`Model Optimization Guide <../../openvino-workflow/model-optimization>`. Intermediate Representation should be specifically formed to be suitable for low precision inference. @@ -24,26 +24,26 @@ Such a model is called a Low Precision IR and can be generated in two ways: TensorFlow and ONNX quantized models can be prepared by `Neural Network Compression Framework `__. For an operation to be executed in INT8, it must have `FakeQuantize` operations as inputs. -For more details, see the :doc:`specification of FakeQuantize operation `. +For more details, see the :doc:`specification of FakeQuantize operation `. To execute the ``Convolution`` operation in INT8 on CPU, both data and weight inputs should have ``FakeQuantize`` as an input operation: .. image:: ../../_static/images/expanded_int8_Convolution_weights.png -Low precision IR is also suitable for FP32 and FP16 inference if a chosen plugin supports all operations of the IR. The only difference between a Low Precision IR and FP16 or FP32 IR is the existence of ``FakeQuantize`` in the Low Precision IR. -Plugins that support Low Precision Inference recognize these sub-graphs and quantize them during inference. -The ones that do not, execute all operations, including ``FakeQuantize``, as is in the FP32 or FP16 precision. +Low precision IR is also suitable for FP32 and FP16 inference if a chosen plugin supports all operations of the IR. The only difference between a Low Precision IR and FP16 or FP32 IR is the existence of ``FakeQuantize`` in the Low Precision IR. +Plugins that support Low Precision Inference recognize these sub-graphs and quantize them during inference. +The ones that do not, execute all operations, including ``FakeQuantize``, as is in the FP32 or FP16 precision. -Consequently, when ``FakeQuantize`` operations are present in an OpenVINO IR, it suggests to the inference device how to quantize particular operations in the model. -If the device is capable, it accepts the suggestion and performs Low Precision Inference. If not, it executes the model in the floating-point precision. +Consequently, when ``FakeQuantize`` operations are present in an OpenVINO IR, it suggests to the inference device how to quantize particular operations in the model. +If the device is capable, it accepts the suggestion and performs Low Precision Inference. If not, it executes the model in the floating-point precision. Compressed Low Precision Weights ################################ -Weighted operations, such as ``Convolution`` and ``MatMul``, store weights as the floating-point ``Constant`` in the graph followed by the `FakeQuantize` operation. -The ``Constant`` followed by the ``FakeQuantize`` operation could be optimized memory-wise due to the ``FakeQuantize`` operation semantics. -The resulting weights sub-graph stores weights in Low Precision ``Constant``, which gets unpacked back to floating point with the ``Convert`` operation. +Weighted operations, such as ``Convolution`` and ``MatMul``, store weights as the floating-point ``Constant`` in the graph followed by the `FakeQuantize` operation. +The ``Constant`` followed by the ``FakeQuantize`` operation could be optimized memory-wise due to the ``FakeQuantize`` operation semantics. +The resulting weights sub-graph stores weights in Low Precision ``Constant``, which gets unpacked back to floating point with the ``Convert`` operation. Weights compression replaces ``FakeQuantize`` with optional ``Subtract`` and ``Multiply`` operation leaving output arithmetically the same and weights storing takes four times less memory. See the visualization of `Convolution` with the compressed weights: diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets.rst index dc4cad1a51253f..a851b514ecf547 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets.rst @@ -5,12 +5,12 @@ Operation Sets in OpenVINO .. meta:: - :description: Learn the essentials of representing deep learning models in OpenVINO + :description: Learn the essentials of representing deep learning models in OpenVINO IR format and the use of supported operation sets. -This article provides essential information on the format used for representation of deep learning models in OpenVINO toolkit and supported operation sets. +This article provides essential information on the format used for representation of deep learning models in OpenVINO toolkit and supported operation sets. Overview of Artificial Neural Networks Representation ##################################################### @@ -62,7 +62,7 @@ A set consists of several groups of operations: For more information, refer to the complete description of the supported operation sets in the :doc:`Available Operation Sets ` article. How to Read Opset Specification -############################### +############################### In the :doc:`Available Operation Sets ` there are opsets and there are operations. Each opset specification has a list of links to operations descriptions that are included into that specific opset. @@ -70,8 +70,8 @@ Two or more opsets may refer to the same operation. That means an operation is kept unchanged from one operation set to another. The description of each operation has a ``Versioned name`` field. -For example, the `ReLU` entry point in :doc:`opset1 ` refers to :doc:`ReLU-1 ` as the versioned name. -Meanwhile, `ReLU` in `opset2` refers to the same `ReLU-1` and both `ReLU` operations are the same operation and it has a single :doc:`description `, which means that ``opset1`` and ``opset2`` share the same operation ``ReLU``. +For example, the `ReLU` entry point in :doc:`opset1 ` refers to :doc:`ReLU-1 ` as the versioned name. +Meanwhile, `ReLU` in `opset2` refers to the same `ReLU-1` and both `ReLU` operations are the same operation and it has a single :doc:`description `, which means that ``opset1`` and ``opset2`` share the same operation ``ReLU``. To differentiate versions of the same operation type such as ``ReLU``, the ``-N`` suffix is used in a versioned name of the operation. The ``N`` suffix usually refers to the first occurrence of ``opsetN`` where this version of the operation is introduced. @@ -88,14 +88,14 @@ Version of IR specifies the rules which are used to read the XML and binary file Historically, there are two major IR version epochs: -1. The older one includes IR versions from version 1 to version 7 without versioning of the operation set. During that epoch, the operation set has been growing evolutionally accumulating more layer types and extending existing layer semantics. Changing of the operation set for those versions meant increasing of the IR version. +1. The older one includes IR versions from version 1 to version 7 without versioning of the operation set. During that epoch, the operation set has been growing evolutionally accumulating more layer types and extending existing layer semantics. Changing of the operation set for those versions meant increasing of the IR version. 2. OpenVINO 2020.1 is the starting point of the next epoch. With IR version 10 introduced in OpenVINO 2020.1, the versioning of the operation set is tracked separately from the IR versioning. Also, the operation set was significantly reworked as the result of nGraph integration to the OpenVINO. The first supported operation set in the new epoch is ``opset1``. The number after ``opset`` is going to be increased each time new operations are added or old operations deleted at the release cadence. -The operations from the new epoch cover more TensorFlow and ONNX operations that better match the original operation semantics from the frameworks, compared to the operation set used in the older IR versions (7 and lower). +The operations from the new epoch cover more TensorFlow and ONNX operations that better match the original operation semantics from the frameworks, compared to the operation set used in the older IR versions (7 and lower). The name of the opset is specified for each operation in IR. The IR version is specified once. diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset1.rst index 198072040d20aa..2aa4a1c0a7d558 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset1.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset1.rst @@ -19,111 +19,111 @@ declared in ``namespace opset1``. Table of Contents ################## -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-1>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-1>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-1>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-1>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-1>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-1>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-1>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/non-max-suppression-1>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-1>` -* :doc:`Proposal <../operations-specifications/detection/proposal-1>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`Range <../operations-specifications/generation/range-1>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-1>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-1>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-1>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-1>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-1>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-1>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-1>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`Interpolate <../operation-specs/image/interpolate-1>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-1>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/non-max-suppression-1>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-1>` +* :doc:`Proposal <../operation-specs/detection/proposal-1>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`Range <../operation-specs/generation/range-1>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`SoftMax <../operation-specs/activation/softmax-1>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-1>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset10.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset10.rst index 933c08028955ee..c40d5f494798e4 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset10.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset10.rst @@ -19,180 +19,180 @@ declared in ``namespace opset10``. Table of Contents ###################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`AdaptiveAvgPool <../operations-specifications/pooling/adaptive-avg-pool-8>` -* :doc:`AdaptiveMaxPool <../operations-specifications/pooling/adaptive-max-pool-8>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-8>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-8>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`Eye <../operations-specifications/generation/eye-9>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-8>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND <../operations-specifications/movement/gather-nd-8>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`GenerateProposals <../operations-specifications/detection/generate-proposals-9>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GridSample <../operations-specifications/image/grid-sample-9>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`I420toBGR <../operations-specifications/image/i420-to-bgr-8>` -* :doc:`I420toRGB <../operations-specifications/image/i420-to-rgb-8>` -* :doc:`If <../operations-specifications/condition/if-8>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-4>` -* :doc:`IRDFT <../operations-specifications/signals/irdft-9>` -* :doc:`IsInf <../operations-specifications/comparison/isinf-10>` -* :doc:`IsNaN <../operations-specifications/comparison/isnan-10>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MatrixNMS <../operations-specifications/sort/matrix-non-max-suppression-8>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-8>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`MulticlassNMS <../operations-specifications/sort/multiclass-non-max-suppression-9>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`NV12toBGR <../operations-specifications/image/nv12-to-bgr-8>` -* :doc:`NV12toRGB <../operations-specifications/image/nv12-to-rgb-8>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-8>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`RandomUniform <../operations-specifications/generation/random-uniform-8>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`RDFT <../operations-specifications/signals/rdft-9>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-9>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`Slice <../operations-specifications/movement/slice-8>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-8>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SoftSign <../operations-specifications/activation/softsign-9>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unique <../operations-specifications/movement/unique-10>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`AdaptiveAvgPool <../operation-specs/pooling/adaptive-avg-pool-8>` +* :doc:`AdaptiveMaxPool <../operation-specs/pooling/adaptive-max-pool-8>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-8>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-8>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`Eye <../operation-specs/generation/eye-9>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-8>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND <../operation-specs/movement/gather-nd-8>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`GenerateProposals <../operation-specs/detection/generate-proposals-9>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GridSample <../operation-specs/image/grid-sample-9>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`I420toBGR <../operation-specs/image/i420-to-bgr-8>` +* :doc:`I420toRGB <../operation-specs/image/i420-to-rgb-8>` +* :doc:`If <../operation-specs/condition/if-8>` +* :doc:`Interpolate <../operation-specs/image/interpolate-4>` +* :doc:`IRDFT <../operation-specs/signals/irdft-9>` +* :doc:`IsInf <../operation-specs/comparison/isinf-10>` +* :doc:`IsNaN <../operation-specs/comparison/isnan-10>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MatrixNMS <../operation-specs/sort/matrix-non-max-suppression-8>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-8>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`MulticlassNMS <../operation-specs/sort/multiclass-non-max-suppression-9>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`NV12toBGR <../operation-specs/image/nv12-to-bgr-8>` +* :doc:`NV12toRGB <../operation-specs/image/nv12-to-rgb-8>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-8>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`RandomUniform <../operation-specs/generation/random-uniform-8>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`RDFT <../operation-specs/signals/rdft-9>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-9>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`Slice <../operation-specs/movement/slice-8>` +* :doc:`SoftMax <../operation-specs/activation/softmax-8>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SoftSign <../operation-specs/activation/softsign-9>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unique <../operation-specs/movement/unique-10>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset11.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset11.rst index 851f111ecac011..14049ddbb7d369 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset11.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset11.rst @@ -19,180 +19,180 @@ declared in ``namespace opset11``. Table of Contents ################## -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`AdaptiveAvgPool <../operations-specifications/pooling/adaptive-avg-pool-8>` -* :doc:`AdaptiveMaxPool <../operations-specifications/pooling/adaptive-max-pool-8>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-8>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-8>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`Eye <../operations-specifications/generation/eye-9>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-8>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND <../operations-specifications/movement/gather-nd-8>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`GenerateProposals <../operations-specifications/detection/generate-proposals-9>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GridSample <../operations-specifications/image/grid-sample-9>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`I420toBGR <../operations-specifications/image/i420-to-bgr-8>` -* :doc:`I420toRGB <../operations-specifications/image/i420-to-rgb-8>` -* :doc:`If <../operations-specifications/condition/if-8>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-11>` -* :doc:`IRDFT <../operations-specifications/signals/irdft-9>` -* :doc:`IsInf <../operations-specifications/comparison/isinf-10>` -* :doc:`IsNaN <../operations-specifications/comparison/isnan-10>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MatrixNMS <../operations-specifications/sort/matrix-non-max-suppression-8>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-8>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`MulticlassNMS <../operations-specifications/sort/multiclass-non-max-suppression-9>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`NV12toBGR <../operations-specifications/image/nv12-to-bgr-8>` -* :doc:`NV12toRGB <../operations-specifications/image/nv12-to-rgb-8>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-8>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`RandomUniform <../operations-specifications/generation/random-uniform-8>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`RDFT <../operations-specifications/signals/rdft-9>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-9>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`Slice <../operations-specifications/movement/slice-8>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-8>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SoftSign <../operations-specifications/activation/softsign-9>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-11>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unique <../operations-specifications/movement/unique-10>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`AdaptiveAvgPool <../operation-specs/pooling/adaptive-avg-pool-8>` +* :doc:`AdaptiveMaxPool <../operation-specs/pooling/adaptive-max-pool-8>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-8>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-8>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`Eye <../operation-specs/generation/eye-9>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-8>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND <../operation-specs/movement/gather-nd-8>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`GenerateProposals <../operation-specs/detection/generate-proposals-9>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GridSample <../operation-specs/image/grid-sample-9>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`I420toBGR <../operation-specs/image/i420-to-bgr-8>` +* :doc:`I420toRGB <../operation-specs/image/i420-to-rgb-8>` +* :doc:`If <../operation-specs/condition/if-8>` +* :doc:`Interpolate <../operation-specs/image/interpolate-11>` +* :doc:`IRDFT <../operation-specs/signals/irdft-9>` +* :doc:`IsInf <../operation-specs/comparison/isinf-10>` +* :doc:`IsNaN <../operation-specs/comparison/isnan-10>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MatrixNMS <../operation-specs/sort/matrix-non-max-suppression-8>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-8>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`MulticlassNMS <../operation-specs/sort/multiclass-non-max-suppression-9>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`NV12toBGR <../operation-specs/image/nv12-to-bgr-8>` +* :doc:`NV12toRGB <../operation-specs/image/nv12-to-rgb-8>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-8>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`RandomUniform <../operation-specs/generation/random-uniform-8>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`RDFT <../operation-specs/signals/rdft-9>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-9>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`Slice <../operation-specs/movement/slice-8>` +* :doc:`SoftMax <../operation-specs/activation/softmax-8>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SoftSign <../operation-specs/activation/softsign-9>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-11>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unique <../operation-specs/movement/unique-10>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset12.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset12.rst index 4ab3e001a17610..23151563d5bb1b 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset12.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset12.rst @@ -19,181 +19,181 @@ declared in ``namespace opset12``. Table of Contents ################## -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`AdaptiveAvgPool <../operations-specifications/pooling/adaptive-avg-pool-8>` -* :doc:`AdaptiveMaxPool <../operations-specifications/pooling/adaptive-max-pool-8>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-8>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-8>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`Eye <../operations-specifications/generation/eye-9>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-8>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND <../operations-specifications/movement/gather-nd-8>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`GenerateProposals <../operations-specifications/detection/generate-proposals-9>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GridSample <../operations-specifications/image/grid-sample-9>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GroupNormalization <../operations-specifications/normalization/group-normalization-12>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`I420toBGR <../operations-specifications/image/i420-to-bgr-8>` -* :doc:`I420toRGB <../operations-specifications/image/i420-to-rgb-8>` -* :doc:`If <../operations-specifications/condition/if-8>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-11>` -* :doc:`IRDFT <../operations-specifications/signals/irdft-9>` -* :doc:`IsInf <../operations-specifications/comparison/isinf-10>` -* :doc:`IsNaN <../operations-specifications/comparison/isnan-10>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MatrixNMS <../operations-specifications/sort/matrix-non-max-suppression-8>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-8>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`MulticlassNMS <../operations-specifications/sort/multiclass-non-max-suppression-9>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`NV12toBGR <../operations-specifications/image/nv12-to-bgr-8>` -* :doc:`NV12toRGB <../operations-specifications/image/nv12-to-rgb-8>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-12>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-8>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`RandomUniform <../operations-specifications/generation/random-uniform-8>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`RDFT <../operations-specifications/signals/rdft-9>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-9>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-12>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`Slice <../operations-specifications/movement/slice-8>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-8>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SoftSign <../operations-specifications/activation/softsign-9>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-11>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unique <../operations-specifications/movement/unique-10>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`AdaptiveAvgPool <../operation-specs/pooling/adaptive-avg-pool-8>` +* :doc:`AdaptiveMaxPool <../operation-specs/pooling/adaptive-max-pool-8>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-8>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-8>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`Eye <../operation-specs/generation/eye-9>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-8>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND <../operation-specs/movement/gather-nd-8>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`GenerateProposals <../operation-specs/detection/generate-proposals-9>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GridSample <../operation-specs/image/grid-sample-9>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GroupNormalization <../operation-specs/normalization/group-normalization-12>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`I420toBGR <../operation-specs/image/i420-to-bgr-8>` +* :doc:`I420toRGB <../operation-specs/image/i420-to-rgb-8>` +* :doc:`If <../operation-specs/condition/if-8>` +* :doc:`Interpolate <../operation-specs/image/interpolate-11>` +* :doc:`IRDFT <../operation-specs/signals/irdft-9>` +* :doc:`IsInf <../operation-specs/comparison/isinf-10>` +* :doc:`IsNaN <../operation-specs/comparison/isnan-10>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MatrixNMS <../operation-specs/sort/matrix-non-max-suppression-8>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-8>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`MulticlassNMS <../operation-specs/sort/multiclass-non-max-suppression-9>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`NV12toBGR <../operation-specs/image/nv12-to-bgr-8>` +* :doc:`NV12toRGB <../operation-specs/image/nv12-to-rgb-8>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-12>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-8>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`RandomUniform <../operation-specs/generation/random-uniform-8>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`RDFT <../operation-specs/signals/rdft-9>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-9>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-12>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`Slice <../operation-specs/movement/slice-8>` +* :doc:`SoftMax <../operation-specs/activation/softmax-8>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SoftSign <../operation-specs/activation/softsign-9>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-11>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unique <../operation-specs/movement/unique-10>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset13.rst index 293f9b463984e8..5488a1bcd52340 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset13.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset13.rst @@ -19,189 +19,189 @@ declared in ``namespace opset13``. Table of Contents ################## -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`AdaptiveAvgPool <../operations-specifications/pooling/adaptive-avg-pool-8>` -* :doc:`AdaptiveMaxPool <../operations-specifications/pooling/adaptive-max-pool-8>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`BitwiseAnd <../operations-specifications/bitwise/bitwise-and-13>` -* :doc:`BitwiseOr <../operations-specifications/bitwise/bitwise-or-13>` -* :doc:`BitwiseXor <../operations-specifications/bitwise/bitwise-xor-13>` -* :doc:`BitwiseNot <../operations-specifications/bitwise/bitwise-not-13>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-8>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-8>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`Eye <../operations-specifications/generation/eye-9>` -* :doc:`FakeConvert <../operations-specifications/quantization/fake-convert-13>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-8>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND <../operations-specifications/movement/gather-nd-8>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`GenerateProposals <../operations-specifications/detection/generate-proposals-9>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GridSample <../operations-specifications/image/grid-sample-9>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GroupNormalization <../operations-specifications/normalization/group-normalization-12>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`I420toBGR <../operations-specifications/image/i420-to-bgr-8>` -* :doc:`I420toRGB <../operations-specifications/image/i420-to-rgb-8>` -* :doc:`If <../operations-specifications/condition/if-8>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-11>` -* :doc:`IRDFT <../operations-specifications/signals/irdft-9>` -* :doc:`IsInf <../operations-specifications/comparison/isinf-10>` -* :doc:`IsNaN <../operations-specifications/comparison/isnan-10>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MatrixNMS <../operations-specifications/sort/matrix-non-max-suppression-8>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-8>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`MulticlassNMS <../operations-specifications/sort/multiclass-non-max-suppression-9>` -* :doc:`Multinomial <../operations-specifications/generation/multinomial-13>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NMSRotated <../operations-specifications/sort/nms-rotated-13>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/non-max-suppression-9>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`NV12toBGR <../operations-specifications/image/nv12-to-bgr-8>` -* :doc:`NV12toRGB <../operations-specifications/image/nv12-to-rgb-8>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-12>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-8>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`RandomUniform <../operations-specifications/generation/random-uniform-8>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`RDFT <../operations-specifications/signals/rdft-9>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-9>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScaledDotProductAttention <../operations-specifications/sequence/scaled-dot-product-attention>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-12>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`Slice <../operations-specifications/movement/slice-8>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-8>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SoftSign <../operations-specifications/activation/softsign-9>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-11>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unique <../operations-specifications/movement/unique-10>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`AdaptiveAvgPool <../operation-specs/pooling/adaptive-avg-pool-8>` +* :doc:`AdaptiveMaxPool <../operation-specs/pooling/adaptive-max-pool-8>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`BitwiseAnd <../operation-specs/bitwise/bitwise-and-13>` +* :doc:`BitwiseOr <../operation-specs/bitwise/bitwise-or-13>` +* :doc:`BitwiseXor <../operation-specs/bitwise/bitwise-xor-13>` +* :doc:`BitwiseNot <../operation-specs/bitwise/bitwise-not-13>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-8>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-8>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`Eye <../operation-specs/generation/eye-9>` +* :doc:`FakeConvert <../operation-specs/quantization/fake-convert-13>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-8>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND <../operation-specs/movement/gather-nd-8>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`GenerateProposals <../operation-specs/detection/generate-proposals-9>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GridSample <../operation-specs/image/grid-sample-9>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GroupNormalization <../operation-specs/normalization/group-normalization-12>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`I420toBGR <../operation-specs/image/i420-to-bgr-8>` +* :doc:`I420toRGB <../operation-specs/image/i420-to-rgb-8>` +* :doc:`If <../operation-specs/condition/if-8>` +* :doc:`Interpolate <../operation-specs/image/interpolate-11>` +* :doc:`IRDFT <../operation-specs/signals/irdft-9>` +* :doc:`IsInf <../operation-specs/comparison/isinf-10>` +* :doc:`IsNaN <../operation-specs/comparison/isnan-10>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MatrixNMS <../operation-specs/sort/matrix-non-max-suppression-8>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-8>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`MulticlassNMS <../operation-specs/sort/multiclass-non-max-suppression-9>` +* :doc:`Multinomial <../operation-specs/generation/multinomial-13>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NMSRotated <../operation-specs/sort/nms-rotated-13>` +* :doc:`NonMaxSuppression <../operation-specs/sort/non-max-suppression-9>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`NV12toBGR <../operation-specs/image/nv12-to-bgr-8>` +* :doc:`NV12toRGB <../operation-specs/image/nv12-to-rgb-8>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-12>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-8>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`RandomUniform <../operation-specs/generation/random-uniform-8>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`RDFT <../operation-specs/signals/rdft-9>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-9>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScaledDotProductAttention <../operation-specs/sequence/scaled-dot-product-attention>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-12>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`Slice <../operation-specs/movement/slice-8>` +* :doc:`SoftMax <../operation-specs/activation/softmax-8>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SoftSign <../operation-specs/activation/softsign-9>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-11>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unique <../operation-specs/movement/unique-10>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset14.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset14.rst index e38dbc37429d24..ffccba1adf3181 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset14.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset14.rst @@ -19,190 +19,190 @@ declared in ``namespace opset14``. Table of Contents ################## -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`AdaptiveAvgPool <../operations-specifications/pooling/adaptive-avg-pool-8>` -* :doc:`AdaptiveMaxPool <../operations-specifications/pooling/adaptive-max-pool-8>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`BitwiseAnd <../operations-specifications/bitwise/bitwise-and-13>` -* :doc:`BitwiseOr <../operations-specifications/bitwise/bitwise-or-13>` -* :doc:`BitwiseXor <../operations-specifications/bitwise/bitwise-xor-13>` -* :doc:`BitwiseNot <../operations-specifications/bitwise/bitwise-not-13>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-8>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-8>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`Eye <../operations-specifications/generation/eye-9>` -* :doc:`FakeConvert <../operations-specifications/quantization/fake-convert-13>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-8>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND <../operations-specifications/movement/gather-nd-8>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`GenerateProposals <../operations-specifications/detection/generate-proposals-9>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GridSample <../operations-specifications/image/grid-sample-9>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GroupNormalization <../operations-specifications/normalization/group-normalization-12>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`I420toBGR <../operations-specifications/image/i420-to-bgr-8>` -* :doc:`I420toRGB <../operations-specifications/image/i420-to-rgb-8>` -* :doc:`If <../operations-specifications/condition/if-8>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-11>` -* :doc:`Inverse <../operations-specifications/matrix/Inverse_14>` -* :doc:`IRDFT <../operations-specifications/signals/irdft-9>` -* :doc:`IsInf <../operations-specifications/comparison/isinf-10>` -* :doc:`IsNaN <../operations-specifications/comparison/isnan-10>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MatrixNMS <../operations-specifications/sort/matrix-non-max-suppression-8>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-8>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`MulticlassNMS <../operations-specifications/sort/multiclass-non-max-suppression-9>` -* :doc:`Multinomial <../operations-specifications/generation/multinomial-13>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NMSRotated <../operations-specifications/sort/nms-rotated-13>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/non-max-suppression-9>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`NV12toBGR <../operations-specifications/image/nv12-to-bgr-8>` -* :doc:`NV12toRGB <../operations-specifications/image/nv12-to-rgb-8>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-12>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-8>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`RandomUniform <../operations-specifications/generation/random-uniform-8>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`RDFT <../operations-specifications/signals/rdft-9>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-9>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScaledDotProductAttention <../operations-specifications/sequence/scaled-dot-product-attention>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-12>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`Slice <../operations-specifications/movement/slice-8>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-8>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SoftSign <../operations-specifications/activation/softsign-9>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-11>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unique <../operations-specifications/movement/unique-10>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`AdaptiveAvgPool <../operation-specs/pooling/adaptive-avg-pool-8>` +* :doc:`AdaptiveMaxPool <../operation-specs/pooling/adaptive-max-pool-8>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`BitwiseAnd <../operation-specs/bitwise/bitwise-and-13>` +* :doc:`BitwiseOr <../operation-specs/bitwise/bitwise-or-13>` +* :doc:`BitwiseXor <../operation-specs/bitwise/bitwise-xor-13>` +* :doc:`BitwiseNot <../operation-specs/bitwise/bitwise-not-13>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-8>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-8>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`Eye <../operation-specs/generation/eye-9>` +* :doc:`FakeConvert <../operation-specs/quantization/fake-convert-13>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-8>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND <../operation-specs/movement/gather-nd-8>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`GenerateProposals <../operation-specs/detection/generate-proposals-9>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GridSample <../operation-specs/image/grid-sample-9>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GroupNormalization <../operation-specs/normalization/group-normalization-12>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`I420toBGR <../operation-specs/image/i420-to-bgr-8>` +* :doc:`I420toRGB <../operation-specs/image/i420-to-rgb-8>` +* :doc:`If <../operation-specs/condition/if-8>` +* :doc:`Interpolate <../operation-specs/image/interpolate-11>` +* :doc:`Inverse <../operation-specs/matrix/Inverse_14>` +* :doc:`IRDFT <../operation-specs/signals/irdft-9>` +* :doc:`IsInf <../operation-specs/comparison/isinf-10>` +* :doc:`IsNaN <../operation-specs/comparison/isnan-10>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MatrixNMS <../operation-specs/sort/matrix-non-max-suppression-8>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-8>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`MulticlassNMS <../operation-specs/sort/multiclass-non-max-suppression-9>` +* :doc:`Multinomial <../operation-specs/generation/multinomial-13>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NMSRotated <../operation-specs/sort/nms-rotated-13>` +* :doc:`NonMaxSuppression <../operation-specs/sort/non-max-suppression-9>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`NV12toBGR <../operation-specs/image/nv12-to-bgr-8>` +* :doc:`NV12toRGB <../operation-specs/image/nv12-to-rgb-8>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-12>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-8>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`RandomUniform <../operation-specs/generation/random-uniform-8>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`RDFT <../operation-specs/signals/rdft-9>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-9>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScaledDotProductAttention <../operation-specs/sequence/scaled-dot-product-attention>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-12>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`Slice <../operation-specs/movement/slice-8>` +* :doc:`SoftMax <../operation-specs/activation/softmax-8>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SoftSign <../operation-specs/activation/softsign-9>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-11>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unique <../operation-specs/movement/unique-10>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset2.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset2.rst index 3677b983cf6fb2..234c4815c24bbb 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset2.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset2.rst @@ -19,117 +19,117 @@ declared in ``namespace opset2``. Table of Contents ###################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-1>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-1>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-1>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-1>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-1>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-2>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-1>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-1>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-1>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/non-max-suppression-1>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-1>` -* :doc:`Proposal <../operations-specifications/detection/proposal-1>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`Range <../operations-specifications/generation/range-1>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-1>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-1>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-1>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-1>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-1>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-1>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-1>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-2>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`Interpolate <../operation-specs/image/interpolate-1>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-1>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-1>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/non-max-suppression-1>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-1>` +* :doc:`Proposal <../operation-specs/detection/proposal-1>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`Range <../operation-specs/generation/range-1>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`SoftMax <../operation-specs/activation/softmax-1>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-1>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset3.rst index 981cc68637717a..42556d6b18e221 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset3.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset3.rst @@ -19,132 +19,132 @@ declared in ``namespace opset3``. Table of Contents ####################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-1>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-1>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-1>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-1>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-2>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-1>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-1>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-1>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/non-max-suppression-3>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-1>` -* :doc:`Proposal <../operations-specifications/detection/proposal-1>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`Range <../operations-specifications/generation/range-1>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`Reverse <../operations-specifications/movement/reverse-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-3>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-1>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-1>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-1>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-1>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-1>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-2>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`Interpolate <../operation-specs/image/interpolate-1>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-1>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-1>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/non-max-suppression-3>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-1>` +* :doc:`Proposal <../operation-specs/detection/proposal-1>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`Range <../operation-specs/generation/range-1>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`Reverse <../operation-specs/movement/reverse-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-3>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`SoftMax <../operation-specs/activation/softmax-1>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset4.rst index 92d0b7402fe2c4..c28fc85578d14b 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset4.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset4.rst @@ -19,142 +19,142 @@ declared in ``namespace opset4``. Table of Contents ####################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-1>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-1>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-1>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-1>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-2>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-4>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-1>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-1>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/non-max-suppression-4>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-1>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`Reverse <../operations-specifications/movement/reverse-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-3>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-1>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-1>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-1>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-1>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-1>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-2>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`Interpolate <../operation-specs/image/interpolate-4>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-1>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-1>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/non-max-suppression-4>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-1>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`Reverse <../operation-specs/movement/reverse-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-3>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`SoftMax <../operation-specs/activation/softmax-1>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset5.rst index 5e309fa8e4eae2..e3189cc701fcf5 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset5.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset5.rst @@ -19,151 +19,151 @@ declared in ``namespace opset5``. Table of Contents ####################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-1>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-1>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-1>` -* :doc:`GatherND_5 <../operations-specifications/movement/gather-nd-5>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-2>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-4>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-1>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-1>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-1>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`Reverse <../operations-specifications/movement/reverse-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-3>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-1>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-1>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-1>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-1>` +* :doc:`GatherND_5 <../operation-specs/movement/gather-nd-5>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-2>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`Interpolate <../operation-specs/image/interpolate-4>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-1>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-1>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-1>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`Reverse <../operation-specs/movement/reverse-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-3>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`SoftMax <../operation-specs/activation/softmax-1>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset6.rst index 794d9a3b2324e4..b00c2dc9553bbb 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset6.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset6.rst @@ -19,156 +19,156 @@ declared in ``namespace opset6``. Table of Contents ################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-1>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-1>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-1>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND_5 <../operations-specifications/movement/gather-nd-5>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-2>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-4>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-1>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-1>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-3>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-1>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-1>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-1>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-1>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND_5 <../operation-specs/movement/gather-nd-5>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-2>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`Interpolate <../operation-specs/image/interpolate-4>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-1>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-1>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-3>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`SoftMax <../operation-specs/activation/softmax-1>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset7.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset7.rst index 6ca5891324ab77..5232f8ba1d395d 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset7.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset7.rst @@ -19,160 +19,160 @@ declared in ``namespace opset7``. Table of Contents ################## -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-1>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-1>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-7>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND_5 <../operations-specifications/movement/gather-nd-5>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-4>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-1>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-1>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-3>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-1>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-1>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-1>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-7>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND_5 <../operation-specs/movement/gather-nd-5>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`Interpolate <../operation-specs/image/interpolate-4>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-1>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-1>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-3>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`SoftMax <../operation-specs/activation/softmax-1>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset8.rst index 938f1f92574173..cbf52e53a4dc95 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset8.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset8.rst @@ -19,172 +19,172 @@ declared in ``namespace opset8``. Table of Contents ################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`AdaptiveAvgPool <../operations-specifications/pooling/adaptive-avg-pool-8>` -* :doc:`AdaptiveMaxPool <../operations-specifications/pooling/adaptive-max-pool-8>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-8>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-8>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-8>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND <../operations-specifications/movement/gather-nd-8>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`I420toBGR <../operations-specifications/image/i420-to-bgr-8>` -* :doc:`I420toRGB <../operations-specifications/image/i420-to-rgb-8>` -* :doc:`If <../operations-specifications/condition/if-8>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-4>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MatrixNMS <../operations-specifications/sort/matrix-non-max-suppression-8>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-8>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`MulticlassNMS <../operations-specifications/sort/multiclass-non-max-suppression-8>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`NV12toBGR <../operations-specifications/image/nv12-to-bgr-8>` -* :doc:`NV12toRGB <../operations-specifications/image/nv12-to-rgb-8>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-8>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`RandomUniform <../operations-specifications/generation/random-uniform-8>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-3>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`Slice <../operations-specifications/movement/slice-8>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-8>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`AdaptiveAvgPool <../operation-specs/pooling/adaptive-avg-pool-8>` +* :doc:`AdaptiveMaxPool <../operation-specs/pooling/adaptive-max-pool-8>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-8>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-8>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-8>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND <../operation-specs/movement/gather-nd-8>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`I420toBGR <../operation-specs/image/i420-to-bgr-8>` +* :doc:`I420toRGB <../operation-specs/image/i420-to-rgb-8>` +* :doc:`If <../operation-specs/condition/if-8>` +* :doc:`Interpolate <../operation-specs/image/interpolate-4>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MatrixNMS <../operation-specs/sort/matrix-non-max-suppression-8>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-8>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`MulticlassNMS <../operation-specs/sort/multiclass-non-max-suppression-8>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`NV12toBGR <../operation-specs/image/nv12-to-bgr-8>` +* :doc:`NV12toRGB <../operation-specs/image/nv12-to-rgb-8>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-8>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`RandomUniform <../operation-specs/generation/random-uniform-8>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-3>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`Slice <../operation-specs/movement/slice-8>` +* :doc:`SoftMax <../operation-specs/activation/softmax-8>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset9.rst index 1210ab7088432b..70ba9a6fa10757 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset9.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/available-opsets/opset9.rst @@ -19,177 +19,177 @@ declared in ``namespace opset9``. Table of Contents ###################### -* :doc:`Abs <../operations-specifications/arithmetic/abs-1>` -* :doc:`Acos <../operations-specifications/arithmetic/acos-1>` -* :doc:`Acosh <../operations-specifications/arithmetic/acosh-3>` -* :doc:`AdaptiveAvgPool <../operations-specifications/pooling/adaptive-avg-pool-8>` -* :doc:`AdaptiveMaxPool <../operations-specifications/pooling/adaptive-max-pool-8>` -* :doc:`Add <../operations-specifications/arithmetic/add-1>` -* :doc:`Asin <../operations-specifications/arithmetic/asin-1>` -* :doc:`Asinh <../operations-specifications/arithmetic/asinh-3>` -* :doc:`Assign <../operations-specifications/infrastructure/assign-3>` -* :doc:`Atan <../operations-specifications/arithmetic/atan-1>` -* :doc:`Atanh <../operations-specifications/arithmetic/atanh-3>` -* :doc:`AvgPool <../operations-specifications/pooling/avg-pool-1>` -* :doc:`BatchNormInference <../operations-specifications/normalization/batch-norm-inference-5>` -* :doc:`BatchToSpace <../operations-specifications/movement/batch-to-space-2>` -* :doc:`BinaryConvolution <../operations-specifications/convolution/binary-convolution-1>` -* :doc:`Broadcast <../operations-specifications/movement/broadcast-3>` -* :doc:`Bucketize <../operations-specifications/condition/bucketize-3>` -* :doc:`CTCGreedyDecoder <../operations-specifications/sequence/ctc-greedy-decoder-1>` -* :doc:`CTCGreedyDecoderSeqLen <../operations-specifications/sequence/ctc-greedy-decoder-seq-len-6>` -* :doc:`CTCLoss <../operations-specifications/sequence/ctc-loss-4>` -* :doc:`Ceiling <../operations-specifications/arithmetic/ceiling-1>` -* :doc:`Clamp <../operations-specifications/activation/clamp-1>` -* :doc:`Concat <../operations-specifications/movement/concat-1>` -* :doc:`Constant <../operations-specifications/infrastructure/constant-1>` -* :doc:`Convert <../operations-specifications/type/convert-1>` -* :doc:`ConvertLike <../operations-specifications/type/convert-like-1>` -* :doc:`Convolution <../operations-specifications/convolution/convolution-1>` -* :doc:`ConvolutionBackpropData <../operations-specifications/convolution/convolution-backprop-data-1>` -* :doc:`Cos <../operations-specifications/arithmetic/cos-1>` -* :doc:`Cosh <../operations-specifications/arithmetic/cosh-1>` -* :doc:`CumSum <../operations-specifications/arithmetic/cumsum-3>` -* :doc:`DeformableConvolution <../operations-specifications/convolution/deformable-convolution-8>` -* :doc:`DeformablePSROIPooling <../operations-specifications/detection/deformable-psroi-pooling-1>` -* :doc:`DepthToSpace <../operations-specifications/movement/depth-to-space-1>` -* :doc:`DetectionOutput <../operations-specifications/detection/detectionoutput-8>` -* :doc:`DFT <../operations-specifications/signals/dft-7>` -* :doc:`Divide <../operations-specifications/arithmetic/divide-1>` -* :doc:`Einsum <../operations-specifications/matrix/einsum-7>` -* :doc:`Elu <../operations-specifications/activation/elu-1>` -* :doc:`EmbeddingBagOffsetsSum <../operations-specifications/sparse/embedding-bag-offsets-sum-3>` -* :doc:`EmbeddingBagPackedSum <../operations-specifications/sparse/embedding-bag-packed-sum-3>` -* :doc:`EmbeddingSegmentsSum <../operations-specifications/sparse/embedding-segments-sum-3>` -* :doc:`Equal <../operations-specifications/comparison/equal-1>` -* :doc:`Erf <../operations-specifications/arithmetic/erf-1>` -* :doc:`Exp <../operations-specifications/activation/exp-1>` -* :doc:`ExperimentalDetectronDetectionOutput_6 <../operations-specifications/detection/experimental-detectron-detection-output-6>` -* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6>` -* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operations-specifications/detection/experimental-detectron-prior-grid-generator-6>` -* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operations-specifications/detection/experimental-detectron-roi-feature-extractor-6>` -* :doc:`ExperimentalDetectronTopKROIs_6 <../operations-specifications/sort/experimental-detectron-top-krois-6>` -* :doc:`ExtractImagePatches <../operations-specifications/movement/extract-image-patches-3>` -* :doc:`Eye <../operations-specifications/generation/eye-9>` -* :doc:`FakeQuantize <../operations-specifications/quantization/fake-quantize-1>` -* :doc:`Floor <../operations-specifications/arithmetic/floor-1>` -* :doc:`FloorMod <../operations-specifications/arithmetic/floormod-1>` -* :doc:`Gather <../operations-specifications/movement/gather-8>` -* :doc:`GatherElements <../operations-specifications/movement/gather-elements-6>` -* :doc:`GatherND <../operations-specifications/movement/gather-nd-8>` -* :doc:`GatherTree <../operations-specifications/movement/gather-tree-1>` -* :doc:`Gelu <../operations-specifications/activation/gelu-7>` -* :doc:`GenerateProposals <../operations-specifications/detection/generate-proposals-9>` -* :doc:`Greater <../operations-specifications/comparison/greater-1>` -* :doc:`GreaterEqual <../operations-specifications/comparison/greater-equal-1>` -* :doc:`GridSample <../operations-specifications/image/grid-sample-9>` -* :doc:`GRN <../operations-specifications/normalization/grn-1>` -* :doc:`GroupConvolution <../operations-specifications/convolution/group-convolution-1>` -* :doc:`GroupConvolutionBackpropData <../operations-specifications/convolution/group-convolution-backprop-data-1>` -* :doc:`GRUCell <../operations-specifications/sequence/gru-cell-3>` -* :doc:`GRUSequence <../operations-specifications/sequence/gru-sequence-5>` -* :doc:`HardSigmoid <../operations-specifications/activation/hard-sigmoid-1>` -* :doc:`HSigmoid <../operations-specifications/activation/hsigmoid-5>` -* :doc:`HSwish <../operations-specifications/activation/hswish-4>` -* :doc:`IDFT <../operations-specifications/signals/idft-7>` -* :doc:`I420toBGR <../operations-specifications/image/i420-to-bgr-8>` -* :doc:`I420toRGB <../operations-specifications/image/i420-to-rgb-8>` -* :doc:`If <../operations-specifications/condition/if-8>` -* :doc:`Interpolate <../operations-specifications/image/interpolate-4>` -* :doc:`IRDFT <../operations-specifications/signals/irdft-9>` -* :doc:`Less <../operations-specifications/comparison/less-1>` -* :doc:`LessEqual <../operations-specifications/comparison/lessequal-1>` -* :doc:`Log <../operations-specifications/arithmetic/log-1>` -* :doc:`LogicalAnd <../operations-specifications/logical/logical-and-1>` -* :doc:`LogicalNot <../operations-specifications/logical/logical-not-1>` -* :doc:`LogicalOr <../operations-specifications/logical/logical-or-1>` -* :doc:`LogicalXor <../operations-specifications/logical/logical-xor-1>` -* :doc:`LogSoftmax <../operations-specifications/activation/log-soft-max-5>` -* :doc:`Loop <../operations-specifications/infrastructure/loop-5>` -* :doc:`LRN <../operations-specifications/normalization/lrn-1>` -* :doc:`LSTMCell <../operations-specifications/sequence/lstm-cell-1>` -* :doc:`LSTMSequence <../operations-specifications/sequence/lstm-sequence-1>` -* :doc:`MatMul <../operations-specifications/matrix/matmul-1>` -* :doc:`MatrixNMS <../operations-specifications/sort/matrix-non-max-suppression-8>` -* :doc:`MaxPool <../operations-specifications/pooling/max-pool-8>` -* :doc:`Maximum <../operations-specifications/arithmetic/maximum-1>` -* :doc:`Minimum <../operations-specifications/arithmetic/minimum-1>` -* :doc:`Mish <../operations-specifications/activation/mish-4>` -* :doc:`Mod <../operations-specifications/arithmetic/mod-1>` -* :doc:`MVN <../operations-specifications/normalization/mvn-6>` -* :doc:`MulticlassNMS <../operations-specifications/sort/multiclass-non-max-suppression-9>` -* :doc:`Multiply <../operations-specifications/arithmetic/multiply-1>` -* :doc:`Negative <../operations-specifications/arithmetic/negative-1>` -* :doc:`NonMaxSuppression <../operations-specifications/sort/no-max-suppression-5>` -* :doc:`NonZero <../operations-specifications/condition/nonzero-3>` -* :doc:`NormalizeL2 <../operations-specifications/normalization/normalize-l2-1>` -* :doc:`NotEqual <../operations-specifications/comparison/notequal-1>` -* :doc:`NV12toBGR <../operations-specifications/image/nv12-to-bgr-8>` -* :doc:`NV12toRGB <../operations-specifications/image/nv12-to-rgb-8>` -* :doc:`OneHot <../operations-specifications/sequence/one-hot-1>` -* :doc:`Pad <../operations-specifications/movement/pad-1>` -* :doc:`Parameter <../operations-specifications/infrastructure/parameter-1>` -* :doc:`Power <../operations-specifications/arithmetic/power-1>` -* :doc:`PReLU <../operations-specifications/activation/prelu-1>` -* :doc:`PriorBoxClustered <../operations-specifications/detection/prior-box-clustered-1>` -* :doc:`PriorBox <../operations-specifications/detection/prior-box-8>` -* :doc:`Proposal <../operations-specifications/detection/proposal-4>` -* :doc:`PSROIPooling <../operations-specifications/detection/psroi-pooling-1>` -* :doc:`RandomUniform <../operations-specifications/generation/random-uniform-8>` -* :doc:`Range <../operations-specifications/generation/range-4>` -* :doc:`RDFT <../operations-specifications/signals/rdft-9>` -* :doc:`ReLU <../operations-specifications/activation/relu-1>` -* :doc:`ReadValue <../operations-specifications/infrastructure/read-value-3>` -* :doc:`ReduceL1 <../operations-specifications/reduction/reduce-l1-4>` -* :doc:`ReduceL2 <../operations-specifications/reduction/reduce-l2-4>` -* :doc:`ReduceLogicalAnd <../operations-specifications/reduction/reduce-logical-and-1>` -* :doc:`ReduceLogicalOr <../operations-specifications/reduction/reduce-logical-or-1>` -* :doc:`ReduceMax <../operations-specifications/reduction/reduce-max-1>` -* :doc:`ReduceMean <../operations-specifications/reduction/reduce-mean-1>` -* :doc:`ReduceMin <../operations-specifications/reduction/reduce-min-1>` -* :doc:`ReduceProd <../operations-specifications/reduction/reduce-prod-1>` -* :doc:`ReduceSum <../operations-specifications/reduction/reduce-sum-1>` -* :doc:`RegionYolo <../operations-specifications/detection/region-yolo-1>` -* :doc:`ReorgYolo <../operations-specifications/detection/reorg-yolo-1>` -* :doc:`Reshape <../operations-specifications/shape/reshape-1>` -* :doc:`Result <../operations-specifications/infrastructure/result-1>` -* :doc:`ReverseSequence <../operations-specifications/movement/reverse-sequence-1>` -* :doc:`RNNCell <../operations-specifications/sequence/rnn-cell-3>` -* :doc:`RNNSequence <../operations-specifications/sequence/rnn-sequence-5>` -* :doc:`ROIAlign <../operations-specifications/detection/roi-align-9>` -* :doc:`ROIPooling <../operations-specifications/detection/roi-pooling-1>` -* :doc:`Roll <../operations-specifications/movement/roll-7>` -* :doc:`Round <../operations-specifications/arithmetic/round-5>` -* :doc:`ScatterElementsUpdate <../operations-specifications/movement/scatter-elements-update-3>` -* :doc:`ScatterNDUpdate <../operations-specifications/movement/scatter-nd-update-3>` -* :doc:`ScatterUpdate <../operations-specifications/movement/scatter-update-3>` -* :doc:`Select <../operations-specifications/condition/select-1>` -* :doc:`Selu <../operations-specifications/activation/selu-1>` -* :doc:`ShapeOf <../operations-specifications/shape/shape-of-3>` -* :doc:`ShuffleChannels <../operations-specifications/movement/shuffle-channels-1>` -* :doc:`Sigmoid <../operations-specifications/activation/sigmoid-1>` -* :doc:`Sign <../operations-specifications/arithmetic/sign-1>` -* :doc:`Sin <../operations-specifications/arithmetic/sin-1>` -* :doc:`Sinh <../operations-specifications/arithmetic/sinh-1>` -* :doc:`Slice <../operations-specifications/movement/slice-8>` -* :doc:`SoftMax <../operations-specifications/activation/softmax-8>` -* :doc:`SoftPlus <../operations-specifications/activation/softplus-4>` -* :doc:`SoftSign <../operations-specifications/activation/softsign-9>` -* :doc:`SpaceToBatch <../operations-specifications/movement/space-to-batch-2>` -* :doc:`SpaceToDepth <../operations-specifications/movement/space-to-depth-1>` -* :doc:`Split <../operations-specifications/movement/split-1>` -* :doc:`Sqrt <../operations-specifications/arithmetic/sqrt-1>` -* :doc:`SquaredDifference <../operations-specifications/arithmetic/squared-difference-1>` -* :doc:`Squeeze <../operations-specifications/shape/squeeze-1>` -* :doc:`StridedSlice <../operations-specifications/movement/strided-slice-1>` -* :doc:`Subtract <../operations-specifications/arithmetic/subtract-1>` -* :doc:`Swish <../operations-specifications/activation/swish-4>` -* :doc:`Tan <../operations-specifications/arithmetic/tan-1>` -* :doc:`Tanh <../operations-specifications/arithmetic/tanh-1>` -* :doc:`TensorIterator <../operations-specifications/infrastructure/tensor-iterator-1>` -* :doc:`Tile <../operations-specifications/movement/tile-1>` -* :doc:`TopK <../operations-specifications/sort/top-k-3>` -* :doc:`Transpose <../operations-specifications/movement/transpose-1>` -* :doc:`Unsqueeze <../operations-specifications/shape/unsqueeze-1>` -* :doc:`VariadicSplit <../operations-specifications/movement/variadic-split-1>` +* :doc:`Abs <../operation-specs/arithmetic/abs-1>` +* :doc:`Acos <../operation-specs/arithmetic/acos-1>` +* :doc:`Acosh <../operation-specs/arithmetic/acosh-3>` +* :doc:`AdaptiveAvgPool <../operation-specs/pooling/adaptive-avg-pool-8>` +* :doc:`AdaptiveMaxPool <../operation-specs/pooling/adaptive-max-pool-8>` +* :doc:`Add <../operation-specs/arithmetic/add-1>` +* :doc:`Asin <../operation-specs/arithmetic/asin-1>` +* :doc:`Asinh <../operation-specs/arithmetic/asinh-3>` +* :doc:`Assign <../operation-specs/infrastructure/assign-3>` +* :doc:`Atan <../operation-specs/arithmetic/atan-1>` +* :doc:`Atanh <../operation-specs/arithmetic/atanh-3>` +* :doc:`AvgPool <../operation-specs/pooling/avg-pool-1>` +* :doc:`BatchNormInference <../operation-specs/normalization/batch-norm-inference-5>` +* :doc:`BatchToSpace <../operation-specs/movement/batch-to-space-2>` +* :doc:`BinaryConvolution <../operation-specs/convolution/binary-convolution-1>` +* :doc:`Broadcast <../operation-specs/movement/broadcast-3>` +* :doc:`Bucketize <../operation-specs/condition/bucketize-3>` +* :doc:`CTCGreedyDecoder <../operation-specs/sequence/ctc-greedy-decoder-1>` +* :doc:`CTCGreedyDecoderSeqLen <../operation-specs/sequence/ctc-greedy-decoder-seq-len-6>` +* :doc:`CTCLoss <../operation-specs/sequence/ctc-loss-4>` +* :doc:`Ceiling <../operation-specs/arithmetic/ceiling-1>` +* :doc:`Clamp <../operation-specs/activation/clamp-1>` +* :doc:`Concat <../operation-specs/movement/concat-1>` +* :doc:`Constant <../operation-specs/infrastructure/constant-1>` +* :doc:`Convert <../operation-specs/type/convert-1>` +* :doc:`ConvertLike <../operation-specs/type/convert-like-1>` +* :doc:`Convolution <../operation-specs/convolution/convolution-1>` +* :doc:`ConvolutionBackpropData <../operation-specs/convolution/convolution-backprop-data-1>` +* :doc:`Cos <../operation-specs/arithmetic/cos-1>` +* :doc:`Cosh <../operation-specs/arithmetic/cosh-1>` +* :doc:`CumSum <../operation-specs/arithmetic/cumsum-3>` +* :doc:`DeformableConvolution <../operation-specs/convolution/deformable-convolution-8>` +* :doc:`DeformablePSROIPooling <../operation-specs/detection/deformable-psroi-pooling-1>` +* :doc:`DepthToSpace <../operation-specs/movement/depth-to-space-1>` +* :doc:`DetectionOutput <../operation-specs/detection/detectionoutput-8>` +* :doc:`DFT <../operation-specs/signals/dft-7>` +* :doc:`Divide <../operation-specs/arithmetic/divide-1>` +* :doc:`Einsum <../operation-specs/matrix/einsum-7>` +* :doc:`Elu <../operation-specs/activation/elu-1>` +* :doc:`EmbeddingBagOffsetsSum <../operation-specs/sparse/embedding-bag-offsets-sum-3>` +* :doc:`EmbeddingBagPackedSum <../operation-specs/sparse/embedding-bag-packed-sum-3>` +* :doc:`EmbeddingSegmentsSum <../operation-specs/sparse/embedding-segments-sum-3>` +* :doc:`Equal <../operation-specs/comparison/equal-1>` +* :doc:`Erf <../operation-specs/arithmetic/erf-1>` +* :doc:`Exp <../operation-specs/activation/exp-1>` +* :doc:`ExperimentalDetectronDetectionOutput_6 <../operation-specs/detection/experimental-detectron-detection-output-6>` +* :doc:`ExperimentalDetectronGenerateProposalsSingleImage_6 <../operation-specs/detection/experimental-detectron-generate-proposals-single-image-6>` +* :doc:`ExperimentalDetectronPriorGridGenerator_6 <../operation-specs/detection/experimental-detectron-prior-grid-generator-6>` +* :doc:`ExperimentalDetectronROIFeatureExtractor_6 <../operation-specs/detection/experimental-detectron-roi-feature-extractor-6>` +* :doc:`ExperimentalDetectronTopKROIs_6 <../operation-specs/sort/experimental-detectron-top-krois-6>` +* :doc:`ExtractImagePatches <../operation-specs/movement/extract-image-patches-3>` +* :doc:`Eye <../operation-specs/generation/eye-9>` +* :doc:`FakeQuantize <../operation-specs/quantization/fake-quantize-1>` +* :doc:`Floor <../operation-specs/arithmetic/floor-1>` +* :doc:`FloorMod <../operation-specs/arithmetic/floormod-1>` +* :doc:`Gather <../operation-specs/movement/gather-8>` +* :doc:`GatherElements <../operation-specs/movement/gather-elements-6>` +* :doc:`GatherND <../operation-specs/movement/gather-nd-8>` +* :doc:`GatherTree <../operation-specs/movement/gather-tree-1>` +* :doc:`Gelu <../operation-specs/activation/gelu-7>` +* :doc:`GenerateProposals <../operation-specs/detection/generate-proposals-9>` +* :doc:`Greater <../operation-specs/comparison/greater-1>` +* :doc:`GreaterEqual <../operation-specs/comparison/greater-equal-1>` +* :doc:`GridSample <../operation-specs/image/grid-sample-9>` +* :doc:`GRN <../operation-specs/normalization/grn-1>` +* :doc:`GroupConvolution <../operation-specs/convolution/group-convolution-1>` +* :doc:`GroupConvolutionBackpropData <../operation-specs/convolution/group-convolution-backprop-data-1>` +* :doc:`GRUCell <../operation-specs/sequence/gru-cell-3>` +* :doc:`GRUSequence <../operation-specs/sequence/gru-sequence-5>` +* :doc:`HardSigmoid <../operation-specs/activation/hard-sigmoid-1>` +* :doc:`HSigmoid <../operation-specs/activation/hsigmoid-5>` +* :doc:`HSwish <../operation-specs/activation/hswish-4>` +* :doc:`IDFT <../operation-specs/signals/idft-7>` +* :doc:`I420toBGR <../operation-specs/image/i420-to-bgr-8>` +* :doc:`I420toRGB <../operation-specs/image/i420-to-rgb-8>` +* :doc:`If <../operation-specs/condition/if-8>` +* :doc:`Interpolate <../operation-specs/image/interpolate-4>` +* :doc:`IRDFT <../operation-specs/signals/irdft-9>` +* :doc:`Less <../operation-specs/comparison/less-1>` +* :doc:`LessEqual <../operation-specs/comparison/lessequal-1>` +* :doc:`Log <../operation-specs/arithmetic/log-1>` +* :doc:`LogicalAnd <../operation-specs/logical/logical-and-1>` +* :doc:`LogicalNot <../operation-specs/logical/logical-not-1>` +* :doc:`LogicalOr <../operation-specs/logical/logical-or-1>` +* :doc:`LogicalXor <../operation-specs/logical/logical-xor-1>` +* :doc:`LogSoftmax <../operation-specs/activation/log-soft-max-5>` +* :doc:`Loop <../operation-specs/infrastructure/loop-5>` +* :doc:`LRN <../operation-specs/normalization/lrn-1>` +* :doc:`LSTMCell <../operation-specs/sequence/lstm-cell-1>` +* :doc:`LSTMSequence <../operation-specs/sequence/lstm-sequence-1>` +* :doc:`MatMul <../operation-specs/matrix/matmul-1>` +* :doc:`MatrixNMS <../operation-specs/sort/matrix-non-max-suppression-8>` +* :doc:`MaxPool <../operation-specs/pooling/max-pool-8>` +* :doc:`Maximum <../operation-specs/arithmetic/maximum-1>` +* :doc:`Minimum <../operation-specs/arithmetic/minimum-1>` +* :doc:`Mish <../operation-specs/activation/mish-4>` +* :doc:`Mod <../operation-specs/arithmetic/mod-1>` +* :doc:`MVN <../operation-specs/normalization/mvn-6>` +* :doc:`MulticlassNMS <../operation-specs/sort/multiclass-non-max-suppression-9>` +* :doc:`Multiply <../operation-specs/arithmetic/multiply-1>` +* :doc:`Negative <../operation-specs/arithmetic/negative-1>` +* :doc:`NonMaxSuppression <../operation-specs/sort/no-max-suppression-5>` +* :doc:`NonZero <../operation-specs/condition/nonzero-3>` +* :doc:`NormalizeL2 <../operation-specs/normalization/normalize-l2-1>` +* :doc:`NotEqual <../operation-specs/comparison/notequal-1>` +* :doc:`NV12toBGR <../operation-specs/image/nv12-to-bgr-8>` +* :doc:`NV12toRGB <../operation-specs/image/nv12-to-rgb-8>` +* :doc:`OneHot <../operation-specs/sequence/one-hot-1>` +* :doc:`Pad <../operation-specs/movement/pad-1>` +* :doc:`Parameter <../operation-specs/infrastructure/parameter-1>` +* :doc:`Power <../operation-specs/arithmetic/power-1>` +* :doc:`PReLU <../operation-specs/activation/prelu-1>` +* :doc:`PriorBoxClustered <../operation-specs/detection/prior-box-clustered-1>` +* :doc:`PriorBox <../operation-specs/detection/prior-box-8>` +* :doc:`Proposal <../operation-specs/detection/proposal-4>` +* :doc:`PSROIPooling <../operation-specs/detection/psroi-pooling-1>` +* :doc:`RandomUniform <../operation-specs/generation/random-uniform-8>` +* :doc:`Range <../operation-specs/generation/range-4>` +* :doc:`RDFT <../operation-specs/signals/rdft-9>` +* :doc:`ReLU <../operation-specs/activation/relu-1>` +* :doc:`ReadValue <../operation-specs/infrastructure/read-value-3>` +* :doc:`ReduceL1 <../operation-specs/reduction/reduce-l1-4>` +* :doc:`ReduceL2 <../operation-specs/reduction/reduce-l2-4>` +* :doc:`ReduceLogicalAnd <../operation-specs/reduction/reduce-logical-and-1>` +* :doc:`ReduceLogicalOr <../operation-specs/reduction/reduce-logical-or-1>` +* :doc:`ReduceMax <../operation-specs/reduction/reduce-max-1>` +* :doc:`ReduceMean <../operation-specs/reduction/reduce-mean-1>` +* :doc:`ReduceMin <../operation-specs/reduction/reduce-min-1>` +* :doc:`ReduceProd <../operation-specs/reduction/reduce-prod-1>` +* :doc:`ReduceSum <../operation-specs/reduction/reduce-sum-1>` +* :doc:`RegionYolo <../operation-specs/detection/region-yolo-1>` +* :doc:`ReorgYolo <../operation-specs/detection/reorg-yolo-1>` +* :doc:`Reshape <../operation-specs/shape/reshape-1>` +* :doc:`Result <../operation-specs/infrastructure/result-1>` +* :doc:`ReverseSequence <../operation-specs/movement/reverse-sequence-1>` +* :doc:`RNNCell <../operation-specs/sequence/rnn-cell-3>` +* :doc:`RNNSequence <../operation-specs/sequence/rnn-sequence-5>` +* :doc:`ROIAlign <../operation-specs/detection/roi-align-9>` +* :doc:`ROIPooling <../operation-specs/detection/roi-pooling-1>` +* :doc:`Roll <../operation-specs/movement/roll-7>` +* :doc:`Round <../operation-specs/arithmetic/round-5>` +* :doc:`ScatterElementsUpdate <../operation-specs/movement/scatter-elements-update-3>` +* :doc:`ScatterNDUpdate <../operation-specs/movement/scatter-nd-update-3>` +* :doc:`ScatterUpdate <../operation-specs/movement/scatter-update-3>` +* :doc:`Select <../operation-specs/condition/select-1>` +* :doc:`Selu <../operation-specs/activation/selu-1>` +* :doc:`ShapeOf <../operation-specs/shape/shape-of-3>` +* :doc:`ShuffleChannels <../operation-specs/movement/shuffle-channels-1>` +* :doc:`Sigmoid <../operation-specs/activation/sigmoid-1>` +* :doc:`Sign <../operation-specs/arithmetic/sign-1>` +* :doc:`Sin <../operation-specs/arithmetic/sin-1>` +* :doc:`Sinh <../operation-specs/arithmetic/sinh-1>` +* :doc:`Slice <../operation-specs/movement/slice-8>` +* :doc:`SoftMax <../operation-specs/activation/softmax-8>` +* :doc:`SoftPlus <../operation-specs/activation/softplus-4>` +* :doc:`SoftSign <../operation-specs/activation/softsign-9>` +* :doc:`SpaceToBatch <../operation-specs/movement/space-to-batch-2>` +* :doc:`SpaceToDepth <../operation-specs/movement/space-to-depth-1>` +* :doc:`Split <../operation-specs/movement/split-1>` +* :doc:`Sqrt <../operation-specs/arithmetic/sqrt-1>` +* :doc:`SquaredDifference <../operation-specs/arithmetic/squared-difference-1>` +* :doc:`Squeeze <../operation-specs/shape/squeeze-1>` +* :doc:`StridedSlice <../operation-specs/movement/strided-slice-1>` +* :doc:`Subtract <../operation-specs/arithmetic/subtract-1>` +* :doc:`Swish <../operation-specs/activation/swish-4>` +* :doc:`Tan <../operation-specs/arithmetic/tan-1>` +* :doc:`Tanh <../operation-specs/arithmetic/tanh-1>` +* :doc:`TensorIterator <../operation-specs/infrastructure/tensor-iterator-1>` +* :doc:`Tile <../operation-specs/movement/tile-1>` +* :doc:`TopK <../operation-specs/sort/top-k-3>` +* :doc:`Transpose <../operation-specs/movement/transpose-1>` +* :doc:`Unsqueeze <../operation-specs/shape/unsqueeze-1>` +* :doc:`VariadicSplit <../operation-specs/movement/variadic-split-1>` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs.rst new file mode 100644 index 00000000000000..251fb60a45cd28 --- /dev/null +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs.rst @@ -0,0 +1,230 @@ +.. {#openvino_docs_operations_specifications} + +Operation Specifications +======================== + + +.. meta:: + :description: Explore the examples of operations supported in OpenVINO™ toolkit. + +.. toctree:: + :maxdepth: 1 + + Abs-1 + Acos-1 + Acosh-3 + AdaptiveAvgPool-8 + AdaptiveMaxPool-8 + Add-1 + Asin-1 + Asinh-3 + Assign-3 + Assign-6 + Atan-1 + Atanh-3 + AvgPool-1 + BatchNormInference-1 + BatchNormInference-5 + BatchToSpace-2 + BinaryConvolution-1 + BitwiseAnd-13 + BitwiseNot-13 + BitwiseOr-13 + BitwiseXor-13 + Broadcast-1 + Broadcast-3 + Bucketize-3 + CTCGreedyDecoder-1 + CTCGreedyDecoderSeqLen-6 + Ceiling-1 + Clamp-1 + Concat-1 + Constant-1 + ConvertLike-1 + Convert-1 + ConvolutionBackpropData-1 + Convolution-1 + Cos-1 + Cosh-1 + CTCLoss-4 + CumSum-3 + DeformableConvolution-1 + DeformableConvolution-8 + DeformablePSROIPooling-1 + DepthToSpace-1 + DetectionOutput-1 + DetectionOutput-8 + DFT-7 + Divide-1 + Einsum-7 + Elu-1 + EmbeddingBagOffsetsSum-3 + EmbeddingBagPackedSum-3 + EmbeddingSegmentsSum-3 + Equal-1 + Erf-1 + Exp-1 + ExperimentalDetectronDetectionOutput-6 + ExperimentalDetectronGenerateProposalsSingleImage-6 + ExperimentalDetectronPriorGridGenerator-6 + ExperimentalDetectronROIFeatureExtractor-6 + ExperimentalDetectronTopKROIs-6 + ExtractImagePatches-3 + Eye-9 + FakeConvert-13 + FakeQuantize-1 + FloorMod-1 + Floor-1 + GridSample-9 + GRN-1 + GRUCell-3 + GRUSequence-5 + GatherTree-1 + Gather-1 + Gather-7 + Gather-8 + GatherElements-6 + GatherND-5 + GatherND-8 + GELU-2 + GELU-7 + GenerateProposals-9 + GreaterEqual-1 + Greater-1 + GroupConvolutionBackpropData-1 + GroupConvolution-1 + GroupNormalization-12 + HardSigmoid-1 + HSigmoid-5 + HSwish-4 + I420toBGR-8 + I420toRGB-8 + IDFT-7 + IRDFT-9 + If-8 + Interpolate-1 + Interpolate-4 + Interpolate-11 + Inverse-14 + IsFinite-10 + IsInf-10 + IsNaN-10 + LRN-1 + LSTMCell-1 + LSTMSequence-1 + LessEqual-1 + Less-1 + Log-1 + LogicalAnd-1 + LogicalNot-1 + LogicalOr-1 + LogicalXor-1 + LogSoftmax-5 + Loop-5 + MVN-1 + MVN-6 + MatMul-1 + MatrixNms-8 + MaxPool-1 + MaxPool-8 + Maximum-1 + Minimum-1 + Mish-4 + Mod-1 + MulticlassNonMaxSuppression-8 + MulticlassNonMaxSuppression-9 + Multinomial-13 + Multiply-1 + Negative-1 + NMSRotated-13 + NonMaxSuppression-1 + NonMaxSuppression-3 + NonMaxSuppression-4 + NonMaxSuppression-5 + NonMaxSuppression-9 + NonZero-3 + NormalizeL2-1 + NotEqual-1 + NV12toBGR-8 + NV12toRGB-8 + OneHot-1 + PReLU-1 + PSROIPooling-1 + Pad-1 + Pad-12 + Parameter-1 + Power-1 + PriorBoxClustered-1 + PriorBox-1 + PriorBox-8 + Proposal-1 + Proposal-4 + RandomUniform-8 + Range-1 + Range-4 + RDFT-9 + ReadValue-3 + ReadValue-6 + ReLU-1 + ReduceL1-4 + ReduceL2-4 + ReduceLogicalAnd-1 + ReduceLogicalOr-1 + ReduceMax-1 + ReduceMean-1 + ReduceMin-1 + ReduceProd-1 + ReduceSum-1 + RegionYolo-1 + ReorgYolo-1 + Reshape-1 + Result-1 + Reverse-1 + ReverseSequence-1 + RNNCell-3 + RNNSequence-5 + ROIAlign-3 + ROIAlign-9 + ROIPooling-1 + Roll-7 + Round-5 + ScaledDotProductAttention-13 + ScatterElementsUpdate-3 + ScatterElementsUpdate-12 + ScatterNDUpdate-3 + ScatterUpdate-3 + Select-1 + Selu-1 + ShapeOf-1 + ShapeOf-3 + ShuffleChannels-1 + Sigmoid-1 + Sign-1 + Sin-1 + Sinh-1 + Slice-8 + SoftMax-1 + SoftMax-8 + SoftPlus-4 + SoftSign-9 + SpaceToBatch-2 + SpaceToDepth-1 + Split-1 + Sqrt-1 + SquaredDifference-1 + Squeeze-1 + StridedSlice-1 + Subtract-1 + Swish-4 + Tan-1 + Tanh-1 + TensorIterator-1 + Tile-1 + TopK-1 + TopK-3 + TopK-11 + Transpose-1 + Unique-10 + Unsqueeze-1 + VariadicSplit-1 + diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/clamp-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/clamp-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/clamp-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/clamp-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/elu-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/elu-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/elu-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/elu-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/exp-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/exp-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/exp-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/exp-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/gelu-2.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/gelu-2.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/gelu-2.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/gelu-2.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/gelu-7.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/gelu-7.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/gelu-7.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/gelu-7.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/hard-sigmoid-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/hard-sigmoid-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/hard-sigmoid-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/hard-sigmoid-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/hsigmoid-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/hsigmoid-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/hsigmoid-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/hsigmoid-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/hswish-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/hswish-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/hswish-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/hswish-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/log-soft-max-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/log-soft-max-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/log-soft-max-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/log-soft-max-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/mish-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/mish-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/mish-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/mish-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/prelu-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/prelu-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/prelu-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/prelu-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/relu-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/relu-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/relu-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/relu-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/selu-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/selu-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/selu-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/selu-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/sigmoid-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/sigmoid-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/sigmoid-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/sigmoid-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softmax-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softmax-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softmax-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softmax-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softmax-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softmax-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softmax-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softmax-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softplus-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softplus-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softplus-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softplus-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softsign-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softsign-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/softsign-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/softsign-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/swish-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/swish-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/activation/swish-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/activation/swish-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/abs-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/abs-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/abs-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/abs-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/acos-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/acos-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/acos-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/acos-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/acosh-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/acosh-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/acosh-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/acosh-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/add-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/add-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/add-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/add-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/asin-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/asin-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/asin-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/asin-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/asinh-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/asinh-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/asinh-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/asinh-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/atan-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/atan-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/atan-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/atan-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/atanh-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/atanh-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/atanh-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/atanh-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/ceiling-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/ceiling-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/ceiling-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/ceiling-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/cos-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/cos-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/cos-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/cos-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/cosh-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/cosh-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/cosh-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/cosh-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/cumsum-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/cumsum-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/cumsum-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/cumsum-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/divide-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/divide-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/divide-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/divide-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/erf-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/erf-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/erf-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/erf-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/floor-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/floor-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/floor-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/floor-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/floormod-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/floormod-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/floormod-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/floormod-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/log-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/log-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/log-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/log-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/maximum-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/maximum-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/maximum-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/maximum-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/minimum-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/minimum-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/minimum-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/minimum-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/mod-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/mod-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/mod-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/mod-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/multiply-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/multiply-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/multiply-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/multiply-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/negative-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/negative-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/negative-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/negative-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/power-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/power-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/power-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/power-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/round-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/round-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/round-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/round-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sign-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sign-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sign-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sign-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sin-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sin-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sin-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sin-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sinh-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sinh-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sinh-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sinh-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sqrt-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sqrt-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/sqrt-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/sqrt-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/squared-difference-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/squared-difference-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/squared-difference-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/squared-difference-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/subtract-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/subtract-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/subtract-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/subtract-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/tan-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/tan-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/tan-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/tan-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/tanh-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/tanh-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/arithmetic/tanh-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/arithmetic/tanh-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-and-13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-and-13.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-and-13.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-and-13.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-not-13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-not-13.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-not-13.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-not-13.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-or-13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-or-13.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-or-13.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-or-13.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-xor-13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-xor-13.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/bitwise/bitwise-xor-13.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/bitwise/bitwise-xor-13.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/equal-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/equal-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/equal-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/equal-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/greater-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/greater-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/greater-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/greater-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/greater-equal-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/greater-equal-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/greater-equal-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/greater-equal-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/isfinite-10.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/isfinite-10.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/isfinite-10.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/isfinite-10.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/isinf-10.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/isinf-10.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/isinf-10.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/isinf-10.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/isnan-10.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/isnan-10.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/isnan-10.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/isnan-10.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/less-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/less-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/less-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/less-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/lessequal-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/lessequal-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/lessequal-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/lessequal-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/notequal-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/notequal-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/comparison/notequal-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/comparison/notequal-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/bucketize-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/bucketize-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/bucketize-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/bucketize-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/if-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/if-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/if-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/if-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/nonzero-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/nonzero-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/nonzero-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/nonzero-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/select-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/select-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/condition/select-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/condition/select-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/binary-convolution-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/binary-convolution-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/binary-convolution-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/binary-convolution-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/convolution-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/convolution-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-backprop-data-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/convolution-backprop-data-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/convolution-backprop-data-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/convolution-backprop-data-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/deformable-convolution-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/deformable-convolution-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/deformable-convolution-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/deformable-convolution-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/deformable-convolution-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/deformable-convolution-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/deformable-convolution-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/deformable-convolution-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/group-convolution-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/group-convolution-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/group-convolution-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/group-convolution-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/group-convolution-backprop-data-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/group-convolution-backprop-data-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/convolution/group-convolution-backprop-data-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/convolution/group-convolution-backprop-data-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/deformable-psroi-pooling-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/deformable-psroi-pooling-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/deformable-psroi-pooling-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/deformable-psroi-pooling-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/detectionoutput-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/detectionoutput-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/detectionoutput-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/detectionoutput-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/detectionoutput-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/detectionoutput-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/detectionoutput-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/detectionoutput-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-detection-output-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-detection-output-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-detection-output-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-detection-output-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-generate-proposals-single-image-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-generate-proposals-single-image-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-generate-proposals-single-image-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-prior-grid-generator-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-prior-grid-generator-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-prior-grid-generator-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-prior-grid-generator-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-roi-feature-extractor-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-roi-feature-extractor-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/experimental-detectron-roi-feature-extractor-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/experimental-detectron-roi-feature-extractor-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/generate-proposals-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/generate-proposals-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/generate-proposals-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/generate-proposals-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/prior-box-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/prior-box-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/prior-box-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/prior-box-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/prior-box-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/prior-box-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/prior-box-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/prior-box-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/prior-box-clustered-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/prior-box-clustered-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/prior-box-clustered-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/prior-box-clustered-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/proposal-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/proposal-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/proposal-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/proposal-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/proposal-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/proposal-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/proposal-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/proposal-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/psroi-pooling-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/psroi-pooling-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/psroi-pooling-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/psroi-pooling-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/region-yolo-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/region-yolo-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/region-yolo-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/region-yolo-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/reorg-yolo-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/reorg-yolo-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/reorg-yolo-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/reorg-yolo-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/roi-align-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/roi-align-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/roi-align-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/roi-align-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/roi-align-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/roi-align-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/roi-align-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/roi-align-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/roi-pooling-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/roi-pooling-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/detection/roi-pooling-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/detection/roi-pooling-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/eye-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/eye-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/eye-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/eye-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/multinomial-13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/multinomial-13.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/multinomial-13.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/multinomial-13.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/random-uniform-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/random-uniform-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/random-uniform-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/random-uniform-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/range-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/range-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/range-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/range-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/range-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/range-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/generation/range-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/generation/range-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/grid-sample-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/grid-sample-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/grid-sample-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/grid-sample-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/i420-to-bgr-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/i420-to-bgr-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/i420-to-bgr-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/i420-to-bgr-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/i420-to-rgb-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/i420-to-rgb-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/i420-to-rgb-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/i420-to-rgb-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/interpolate-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/interpolate-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/interpolate-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/interpolate-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/interpolate-11.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/interpolate-11.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/interpolate-11.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/interpolate-11.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/interpolate-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/interpolate-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/interpolate-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/interpolate-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/nv12-to-bgr-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/nv12-to-bgr-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/nv12-to-bgr-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/nv12-to-bgr-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/nv12-to-rgb-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/nv12-to-rgb-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/image/nv12-to-rgb-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/image/nv12-to-rgb-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/assign-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/assign-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/assign-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/assign-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/assign-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/assign-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/assign-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/assign-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/constant-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/constant-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/constant-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/constant-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/loop-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/loop-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/loop-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/loop-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/parameter-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/parameter-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/parameter-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/parameter-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/read-value-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/read-value-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/read-value-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/read-value-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/read-value-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/read-value-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/read-value-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/read-value-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/result-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/result-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/result-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/result-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/tensor-iterator-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/tensor-iterator-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/tensor-iterator-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/tensor-iterator-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/internal/augru-cell.md b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.md similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/internal/augru-cell.md rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.md diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/internal/augru-sequence.md b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.md similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/internal/augru-sequence.md rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.md diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-and-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-and-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-and-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-and-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-not-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-not-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-not-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-not-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-or-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-or-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-or-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-or-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-xor-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-xor-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/logical/logical-xor-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/logical/logical-xor-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/matrix/Inverse_14.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/matrix/Inverse_14.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/matrix/Inverse_14.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/matrix/Inverse_14.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/matrix/einsum-7.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/matrix/einsum-7.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/matrix/einsum-7.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/matrix/einsum-7.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/matrix/matmul-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/matrix/matmul-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/matrix/matmul-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/matrix/matmul-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/batch-to-space-2.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/batch-to-space-2.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/batch-to-space-2.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/batch-to-space-2.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/broadcast-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/broadcast-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/broadcast-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/broadcast-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/broadcast-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/broadcast-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/broadcast-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/broadcast-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/concat-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/concat-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/concat-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/concat-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/depth-to-space-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/depth-to-space-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/depth-to-space-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/depth-to-space-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/extract-image-patches-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/extract-image-patches-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/extract-image-patches-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/extract-image-patches-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-7.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-7.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-7.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-7.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-elements-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-elements-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-elements-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-elements-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-nd-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-nd-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-nd-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-nd-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-nd-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-nd-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-nd-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-nd-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-tree-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-tree-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/gather-tree-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/gather-tree-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/pad-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/pad-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/pad-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/pad-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/pad-12.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/pad-12.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/pad-12.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/pad-12.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/reverse-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/reverse-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/reverse-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/reverse-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/reverse-sequence-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/reverse-sequence-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/reverse-sequence-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/reverse-sequence-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/roll-7.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/roll-7.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/roll-7.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/roll-7.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-elements-update-12.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-elements-update-12.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-elements-update-12.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-elements-update-12.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-elements-update-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-elements-update-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-elements-update-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-elements-update-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-nd-update-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-nd-update-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-nd-update-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-nd-update-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-update-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-update-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/scatter-update-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/scatter-update-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/shuffle-channels-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/shuffle-channels-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/shuffle-channels-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/shuffle-channels-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/slice-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/slice-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/slice-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/slice-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/space-to-batch-2.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-batch-2.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/space-to-batch-2.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-batch-2.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/space-to-depth-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-depth-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/space-to-depth-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-depth-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/split-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/split-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/split-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/split-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/strided-slice-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/strided-slice-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/strided-slice-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/strided-slice-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/tile-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/tile-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/tile-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/tile-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/transpose-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/transpose-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/transpose-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/transpose-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/unique-10.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/unique-10.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/unique-10.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/unique-10.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/variadic-split-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/variadic-split-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/movement/variadic-split-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/variadic-split-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/batch-norm-inference-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/batch-norm-inference-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/batch-norm-inference-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/batch-norm-inference-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/batch-norm-inference-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/batch-norm-inference-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/batch-norm-inference-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/batch-norm-inference-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/grn-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/grn-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/grn-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/grn-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/group-normalization-12.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/group-normalization-12.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/group-normalization-12.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/group-normalization-12.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/lrn-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/lrn-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/lrn-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/lrn-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/mvn-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/mvn-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/mvn-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/mvn-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/mvn-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/mvn-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/mvn-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/mvn-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/normalize-l2-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/normalize-l2-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/normalization/normalize-l2-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/normalization/normalize-l2-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/adaptive-avg-pool-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/adaptive-avg-pool-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/adaptive-avg-pool-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/adaptive-avg-pool-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/adaptive-max-pool-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/adaptive-max-pool-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/adaptive-max-pool-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/adaptive-max-pool-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/avg-pool-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/avg-pool-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/avg-pool-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/avg-pool-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/max-pool-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/max-pool-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/max-pool-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/max-pool-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/max-pool-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/max-pool-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/pooling/max-pool-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/pooling/max-pool-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/quantization/fake-convert-13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/quantization/fake-convert-13.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/quantization/fake-convert-13.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/quantization/fake-convert-13.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/quantization/fake-quantize-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/quantization/fake-quantize-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/quantization/fake-quantize-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/quantization/fake-quantize-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-l1-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-l1-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-l1-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-l1-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-l2-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-l2-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-l2-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-l2-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-logical-and-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-logical-and-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-logical-and-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-logical-and-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-logical-or-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-logical-or-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-logical-or-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-logical-or-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-max-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-max-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-max-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-max-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-mean-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-mean-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-mean-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-mean-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-min-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-min-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-min-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-min-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-prod-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-prod-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-prod-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-prod-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-sum-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-sum-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/reduction/reduce-sum-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/reduction/reduce-sum-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/ctc-greedy-decoder-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/ctc-greedy-decoder-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/ctc-greedy-decoder-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/ctc-greedy-decoder-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/ctc-greedy-decoder-seq-len-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/ctc-greedy-decoder-seq-len-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/ctc-greedy-decoder-seq-len-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/ctc-greedy-decoder-seq-len-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/ctc-loss-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/ctc-loss-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/ctc-loss-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/ctc-loss-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/gru-cell-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/gru-cell-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/gru-cell-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/gru-cell-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/gru-sequence-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/gru-sequence-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/gru-sequence-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/gru-sequence-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/lstm-cell-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/lstm-cell-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/lstm-cell-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/lstm-cell-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/lstm-sequence-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/lstm-sequence-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/lstm-sequence-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/lstm-sequence-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/one-hot-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/one-hot-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/one-hot-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/one-hot-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/rnn-cell-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/rnn-cell-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/rnn-cell-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/rnn-cell-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/rnn-sequence-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/rnn-sequence-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/rnn-sequence-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/rnn-sequence-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/scaled-dot-product-attention.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/scaled-dot-product-attention.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sequence/scaled-dot-product-attention.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sequence/scaled-dot-product-attention.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/reshape-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/reshape-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/reshape-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/shape-of-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/shape-of-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/shape-of-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/shape-of-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/shape-of-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/shape-of-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/shape-of-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/shape-of-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/squeeze-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/squeeze-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/squeeze-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/squeeze-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/unsqueeze-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/unsqueeze-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/shape/unsqueeze-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/shape/unsqueeze-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/dft-7.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/dft-7.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/dft-7.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/dft-7.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/idft-7.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/idft-7.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/idft-7.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/idft-7.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/irdft-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/irdft-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/irdft-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/irdft-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/rdft-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/rdft-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/signals/rdft-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/signals/rdft-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/experimental-detectron-top-krois-6.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/experimental-detectron-top-krois-6.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/experimental-detectron-top-krois-6.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/experimental-detectron-top-krois-6.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/matrix-non-max-suppression-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/matrix-non-max-suppression-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/matrix-non-max-suppression-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/matrix-non-max-suppression-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/multiclass-non-max-suppression-8.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/multiclass-non-max-suppression-8.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/multiclass-non-max-suppression-8.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/multiclass-non-max-suppression-8.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/multiclass-non-max-suppression-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/multiclass-non-max-suppression-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/multiclass-non-max-suppression-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/multiclass-non-max-suppression-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/nms-rotated-13.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/nms-rotated-13.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/nms-rotated-13.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/nms-rotated-13.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/no-max-suppression-5.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/no-max-suppression-5.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/no-max-suppression-5.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/no-max-suppression-5.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-4.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-4.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-4.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-4.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-9.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-9.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/non-max-suppression-9.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/non-max-suppression-9.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/top-k-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/top-k-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/top-k-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/top-k-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/top-k-11.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/top-k-11.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/top-k-11.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/top-k-11.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/top-k-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/top-k-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sort/top-k-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sort/top-k-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sparse/embedding-bag-offsets-sum-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sparse/embedding-bag-offsets-sum-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sparse/embedding-bag-offsets-sum-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sparse/embedding-bag-offsets-sum-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sparse/embedding-bag-packed-sum-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sparse/embedding-bag-packed-sum-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sparse/embedding-bag-packed-sum-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sparse/embedding-bag-packed-sum-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sparse/embedding-segments-sum-3.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sparse/embedding-segments-sum-3.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/sparse/embedding-segments-sum-3.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/sparse/embedding-segments-sum-3.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/type/convert-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/type/convert-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/type/convert-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/type/convert-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/type/convert-like-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/type/convert-like-1.rst similarity index 100% rename from docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications/type/convert-like-1.rst rename to docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/type/convert-like-1.rst diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications.rst deleted file mode 100644 index de35994558e6ee..00000000000000 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operations-specifications.rst +++ /dev/null @@ -1,230 +0,0 @@ -.. {#openvino_docs_operations_specifications} - -Operation Specifications -======================== - - -.. meta:: - :description: Explore the examples of operations supported in OpenVINO™ toolkit. - -.. toctree:: - :maxdepth: 1 - - Abs-1 - Acos-1 - Acosh-3 - AdaptiveAvgPool-8 - AdaptiveMaxPool-8 - Add-1 - Asin-1 - Asinh-3 - Assign-3 - Assign-6 - Atan-1 - Atanh-3 - AvgPool-1 - BatchNormInference-1 - BatchNormInference-5 - BatchToSpace-2 - BinaryConvolution-1 - BitwiseAnd-13 - BitwiseNot-13 - BitwiseOr-13 - BitwiseXor-13 - Broadcast-1 - Broadcast-3 - Bucketize-3 - CTCGreedyDecoder-1 - CTCGreedyDecoderSeqLen-6 - Ceiling-1 - Clamp-1 - Concat-1 - Constant-1 - ConvertLike-1 - Convert-1 - ConvolutionBackpropData-1 - Convolution-1 - Cos-1 - Cosh-1 - CTCLoss-4 - CumSum-3 - DeformableConvolution-1 - DeformableConvolution-8 - DeformablePSROIPooling-1 - DepthToSpace-1 - DetectionOutput-1 - DetectionOutput-8 - DFT-7 - Divide-1 - Einsum-7 - Elu-1 - EmbeddingBagOffsetsSum-3 - EmbeddingBagPackedSum-3 - EmbeddingSegmentsSum-3 - Equal-1 - Erf-1 - Exp-1 - ExperimentalDetectronDetectionOutput-6 - ExperimentalDetectronGenerateProposalsSingleImage-6 - ExperimentalDetectronPriorGridGenerator-6 - ExperimentalDetectronROIFeatureExtractor-6 - ExperimentalDetectronTopKROIs-6 - ExtractImagePatches-3 - Eye-9 - FakeConvert-13 - FakeQuantize-1 - FloorMod-1 - Floor-1 - GridSample-9 - GRN-1 - GRUCell-3 - GRUSequence-5 - GatherTree-1 - Gather-1 - Gather-7 - Gather-8 - GatherElements-6 - GatherND-5 - GatherND-8 - GELU-2 - GELU-7 - GenerateProposals-9 - GreaterEqual-1 - Greater-1 - GroupConvolutionBackpropData-1 - GroupConvolution-1 - GroupNormalization-12 - HardSigmoid-1 - HSigmoid-5 - HSwish-4 - I420toBGR-8 - I420toRGB-8 - IDFT-7 - IRDFT-9 - If-8 - Interpolate-1 - Interpolate-4 - Interpolate-11 - Inverse-14 - IsFinite-10 - IsInf-10 - IsNaN-10 - LRN-1 - LSTMCell-1 - LSTMSequence-1 - LessEqual-1 - Less-1 - Log-1 - LogicalAnd-1 - LogicalNot-1 - LogicalOr-1 - LogicalXor-1 - LogSoftmax-5 - Loop-5 - MVN-1 - MVN-6 - MatMul-1 - MatrixNms-8 - MaxPool-1 - MaxPool-8 - Maximum-1 - Minimum-1 - Mish-4 - Mod-1 - MulticlassNonMaxSuppression-8 - MulticlassNonMaxSuppression-9 - Multinomial-13 - Multiply-1 - Negative-1 - NMSRotated-13 - NonMaxSuppression-1 - NonMaxSuppression-3 - NonMaxSuppression-4 - NonMaxSuppression-5 - NonMaxSuppression-9 - NonZero-3 - NormalizeL2-1 - NotEqual-1 - NV12toBGR-8 - NV12toRGB-8 - OneHot-1 - PReLU-1 - PSROIPooling-1 - Pad-1 - Pad-12 - Parameter-1 - Power-1 - PriorBoxClustered-1 - PriorBox-1 - PriorBox-8 - Proposal-1 - Proposal-4 - RandomUniform-8 - Range-1 - Range-4 - RDFT-9 - ReadValue-3 - ReadValue-6 - ReLU-1 - ReduceL1-4 - ReduceL2-4 - ReduceLogicalAnd-1 - ReduceLogicalOr-1 - ReduceMax-1 - ReduceMean-1 - ReduceMin-1 - ReduceProd-1 - ReduceSum-1 - RegionYolo-1 - ReorgYolo-1 - Reshape-1 - Result-1 - Reverse-1 - ReverseSequence-1 - RNNCell-3 - RNNSequence-5 - ROIAlign-3 - ROIAlign-9 - ROIPooling-1 - Roll-7 - Round-5 - ScaledDotProductAttention-13 - ScatterElementsUpdate-3 - ScatterElementsUpdate-12 - ScatterNDUpdate-3 - ScatterUpdate-3 - Select-1 - Selu-1 - ShapeOf-1 - ShapeOf-3 - ShuffleChannels-1 - Sigmoid-1 - Sign-1 - Sin-1 - Sinh-1 - Slice-8 - SoftMax-1 - SoftMax-8 - SoftPlus-4 - SoftSign-9 - SpaceToBatch-2 - SpaceToDepth-1 - Split-1 - Sqrt-1 - SquaredDifference-1 - Squeeze-1 - StridedSlice-1 - Subtract-1 - Swish-4 - Tan-1 - Tanh-1 - TensorIterator-1 - Tile-1 - TopK-1 - TopK-3 - TopK-11 - Transpose-1 - Unique-10 - Unsqueeze-1 - VariadicSplit-1 - diff --git a/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst b/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst index 88037b7023b03d..3b8d289438aef8 100644 --- a/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst +++ b/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst @@ -57,9 +57,9 @@ OpenVINO Stateful Model Representation To make a model stateful, OpenVINO replaces looped pairs of `Parameter` and `Result` with its own two operations: -* ``ReadValue`` (:doc:`see specs <../../documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/read-value-6>`) +* ``ReadValue`` (:doc:`see specs <../../documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/read-value-6>`) reads the data from the state and returns it as output. -* ``Assign`` (:doc:`see specs <../../documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/assign-6>`) +* ``Assign`` (:doc:`see specs <../../documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/assign-6>`) accepts the data as input and saves it in the state for the next inference call. Each pair of these operations works with **state**, which is automatically saved between diff --git a/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst b/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst index 468293018091cf..307c385ab5b555 100644 --- a/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst +++ b/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst @@ -5,8 +5,8 @@ Obtaining a Stateful OpenVINO Model If the original framework does not offer a dedicated API for working with states, the resulting OpenVINO IR model will not be stateful by default. This means it will not contain -either a state or the :doc:`Assign <../../../documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/assign-6>` and -:doc:`ReadValue <../../../documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/read-value-6>` operations. You can still +either a state or the :doc:`Assign <../../../documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/assign-6>` and +:doc:`ReadValue <../../../documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/read-value-6>` operations. You can still make such models stateful (:doc:`see benefits <../stateful-models>`), and you have three ways to do it: @@ -86,8 +86,8 @@ LowLatency2 Transformation ########################## The LowLatency2 transformation changes the structure of a model containing -:doc:`TensorIterator <../../../documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/tensor-iterator-1>` -and :doc:`Loop <../../../documentation/openvino-ir-format/operation-sets/operations-specifications/infrastructure/loop-5>` by automatically detecting +:doc:`TensorIterator <../../../documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/tensor-iterator-1>` +and :doc:`Loop <../../../documentation/openvino-ir-format/operation-sets/operation-specs/infrastructure/loop-5>` by automatically detecting and replacing pairs of Parameter and Results with the Assign and ReadValue operations, as illustrated by the following example: diff --git a/src/frontends/pytorch/README.md b/src/frontends/pytorch/README.md index 50892d967521f8..07fb1fc2abf89f 100644 --- a/src/frontends/pytorch/README.md +++ b/src/frontends/pytorch/README.md @@ -264,7 +264,7 @@ and we will see `torch.randn_like` function call on that line. Some operations can be translated incorrectly. For example PyTorch allow to pass different data types in the operation while OpenVINO usually requires same types for all inputs of the operation (more information about what types -OpenVINO operation can accept can be found in [documentation](https://docs.openvino.ai/2024/documentation/openvino-ir-format/operation-sets/operations-specifications.html)). +OpenVINO operation can accept can be found in [documentation](https://docs.openvino.ai/2024/documentation/openvino-ir-format/operation-sets/operation-specs.html)). PyTorch has set rules for types alignment, to solve this issue PyTorch Frontend has `align_eltwise_input_types` helper function which aligns types of two inputs. If this function is not used when needed or if it used incorrectly that diff --git a/src/plugins/intel_cpu/docs/fake_quantize.md b/src/plugins/intel_cpu/docs/fake_quantize.md index 89e3c4dc1e2bbc..5364571a56b110 100644 --- a/src/plugins/intel_cpu/docs/fake_quantize.md +++ b/src/plugins/intel_cpu/docs/fake_quantize.md @@ -1,5 +1,5 @@ # FakeQuantize in OpenVINO -https://docs.openvino.ai/2024/documentation/openvino-ir-format/operation-sets/operations-specifications/quantization/fake-quantize-1.html +https://docs.openvino.ai/2024/documentation/openvino-ir-format/operation-sets/operation-specs/quantization/fake-quantize-1.html definition: ``` From 99ce7c045a2d83e75a2646841d95b0d194a3051f Mon Sep 17 00:00:00 2001 From: Sebastian Golebiewski Date: Tue, 12 Mar 2024 14:41:37 +0100 Subject: [PATCH 10/15] [DOCS] Fixing formatting and reference issues (#23405) Fixing formatting and reference issues in docs. Porting: https://github.com/openvinotoolkit/openvino/pull/23333 Fixing directives for linking and cross-reference. Porting: https://github.com/openvinotoolkit/openvino/pull/23300 --- ...gacy]-convert-models-as-python-objects.rst | 12 +- .../convert-tensorflow-gnmt.rst | 6 +- ...egacy]-graph-transformation-extensions.rst | 2 +- .../openvino-security-add-on.rst | 4 +- .../custom-gpu-operations.rst | 3 +- .../custom-openvino-operations.rst | 2 +- .../step3-main.rst | 2 +- .../operation-specs/internal/augru-cell.md | 135 ------------- .../operation-specs/internal/augru-cell.rst | 157 +++++++++++++++ .../internal/augru-sequence.md | 161 --------------- .../internal/augru-sequence.rst | 190 ++++++++++++++++++ .../movement/depth-to-space-1.rst | 15 +- .../movement/space-to-depth-1.rst | 30 ++- .../configurations-intel-gpu.rst | 4 +- .../install-openvino-archive-macos.rst | 4 +- .../install-openvino-archive-windows.rst | 4 +- .../changing-input-shape.rst | 2 +- .../gpu-device.rst | 10 +- ...tegrate-openvino-with-your-application.rst | 2 + .../model-representation.rst | 6 +- .../running-inference/optimize-inference.rst | 2 +- .../optimize-inference/optimizing-latency.rst | 2 +- .../running-inference/stateful-models.rst | 4 +- .../obtaining-stateful-openvino-model.rst | 4 +- docs/sphinx_setup/api/nodejs_api/addon.rst | 12 +- .../openvino-node/enums/element.rst | 20 +- .../openvino-node/enums/resizeAlgorithm.rst | 6 +- .../interfaces/CompiledModel.rst | 16 +- .../openvino-node/interfaces/Core.rst | 26 +-- .../interfaces/CoreConstructor.rst | 4 +- .../openvino-node/interfaces/InferRequest.rst | 36 ++-- .../openvino-node/interfaces/InputInfo.rst | 8 +- .../interfaces/InputModelInfo.rst | 4 +- .../interfaces/InputTensorInfo.rst | 8 +- .../openvino-node/interfaces/Model.rst | 16 +- .../openvino-node/interfaces/Output.rst | 18 +- .../openvino-node/interfaces/OutputInfo.rst | 4 +- .../interfaces/OutputTensorInfo.rst | 6 +- .../openvino-node/interfaces/PartialShape.rst | 10 +- .../interfaces/PartialShapeConstructor.rst | 4 +- .../interfaces/PrePostProcessor.rst | 12 +- .../PrePostProcessorConstructor.rst | 4 +- .../interfaces/PreProcessSteps.rst | 4 +- .../openvino-node/interfaces/Tensor.rst | 10 +- .../interfaces/TensorConstructor.rst | 6 +- .../openvino-node/types/Dimension.rst | 2 +- .../types/SupportedTypedArray.rst | 2 +- .../openvino-node/types/elementTypeString.rst | 2 +- 48 files changed, 535 insertions(+), 468 deletions(-) delete mode 100644 docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.md create mode 100644 docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.rst delete mode 100644 docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.md create mode 100644 docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.rst diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-convert-models-as-python-objects.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-convert-models-as-python-objects.rst index 7749ef4f5fe10d..212aea1cf5790f 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-convert-models-as-python-objects.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-convert-models-as-python-objects.rst @@ -7,7 +7,7 @@ The code described here has been **deprecated!** Do not use it to avoid working with a legacy solution. It will be kept for some time to ensure backwards compatibility, but **you should not use** it in contemporary applications. - This guide describes a deprecated conversion method. The guide on the new and recommended method can be found in the :doc:`Model Preparation <../../../../openvino-workflow/model-preparation>` article. + This guide describes a deprecated conversion method. The guide on the new and recommended method can be found in the :doc:`Model Preparation <../../../../openvino-workflow/model-preparation>` article. Model conversion API is represented by ``convert_model()`` method in openvino.tools.mo namespace. ``convert_model()`` is compatible with types from openvino.runtime, like PartialShape, Layout, Type, etc. @@ -32,8 +32,8 @@ Example of converting a PyTorch model directly from memory: The following types are supported as an input model for ``convert_model()``: -* PyTorch - ``torch.nn.Module``, ``torch.jit.ScriptModule``, ``torch.jit.ScriptFunction``. Refer to the :doc:`Converting a PyTorch Model<[legacy]-supported-model-formats/[legacy]-convert-pytorch>` article for more details. -* TensorFlow / TensorFlow 2 / Keras - ``tf.keras.Model``, ``tf.keras.layers.Layer``, ``tf.compat.v1.Graph``, ``tf.compat.v1.GraphDef``, ``tf.Module``, ``tf.function``, ``tf.compat.v1.session``, ``tf.train.checkpoint``. Refer to the :doc:`Converting a TensorFlow Model<[legacy]-supported-model-formats/[legacy]-convert-tensorflow>` article for more details. +* PyTorch - ``torch.nn.Module``, ``torch.jit.ScriptModule``, ``torch.jit.ScriptFunction``. Refer to the :doc:`Converting a PyTorch Model <[legacy]-supported-model-formats/[legacy]-convert-pytorch>` article for more details. +* TensorFlow / TensorFlow 2 / Keras - ``tf.keras.Model``, ``tf.keras.layers.Layer``, ``tf.compat.v1.Graph``, ``tf.compat.v1.GraphDef``, ``tf.Module``, ``tf.function``, ``tf.compat.v1.session``, ``tf.train.checkpoint``. Refer to the :doc:`Converting a TensorFlow Model <[legacy]-supported-model-formats/[legacy]-convert-tensorflow>` article for more details. ``convert_model()`` accepts all parameters available in the MO command-line tool. Parameters can be specified by Python classes or string analogs, similar to the command-line tool. @@ -64,7 +64,7 @@ Example of using a tuple in the ``input`` parameter to cut a model: ov_model = convert_model(model, input=("input_name", [3], np.float32)) -For complex cases, when a value needs to be set in the ``input`` parameter, the ``InputCutInfo`` class can be used. ``InputCutInfo`` accepts four parameters: ``name``, ``shape``, ``type``, and ``value``. +For complex cases, when a value needs to be set in the ``input`` parameter, the ``InputCutInfo`` class can be used. ``InputCutInfo`` accepts four parameters: ``name``, ``shape``, ``type``, and ``value``. ``InputCutInfo("input_name", [3], np.float32, [0.5, 2.1, 3.4])`` is equivalent of ``InputCutInfo(name="input_name", shape=[3], type=np.float32, value=[0.5, 2.1, 3.4])``. @@ -85,11 +85,11 @@ Example of using ``InputCutInfo`` to freeze an input with value: ov_model = convert_model(model, input=InputCutInfo("input_name", [3], np.float32, [0.5, 2.1, 3.4])) To set parameters for models with multiple inputs, use ``list`` of parameters. -Parameters supporting ``list``: +Parameters supporting ``list``: * input * input_shape -* layout +* layout * source_layout * dest_layout * mean_values diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-gnmt.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-gnmt.rst index f0fd88ccfca948..ac5b43d55feb7f 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-gnmt.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-conversion-api/[legacy]-supported-model-formats/[legacy]-conversion-tutorials/convert-tensorflow-gnmt.rst @@ -5,7 +5,7 @@ Converting a TensorFlow GNMT Model .. meta:: - :description: Learn how to convert a GNMT model + :description: Learn how to convert a GNMT model from TensorFlow to the OpenVINO Intermediate Representation. .. danger:: @@ -13,7 +13,7 @@ Converting a TensorFlow GNMT Model The code described here has been **deprecated!** Do not use it to avoid working with a legacy solution. It will be kept for some time to ensure backwards compatibility, but **you should not use** it in contemporary applications. This guide describes a deprecated conversion method. The guide on the new and recommended method can be found in the :doc:`Python tutorials <../../../../../../learn-openvino/interactive-tutorials-python>`. - + This tutorial explains how to convert Google Neural Machine Translation (GNMT) model to the Intermediate Representation (IR). There are several public versions of TensorFlow GNMT model implementation available on GitHub. This tutorial explains how to convert the GNMT model from the `TensorFlow Neural Machine Translation (NMT) repository `__ to the IR. @@ -26,7 +26,7 @@ Before converting the model, you need to create a patch file for the repository. 1. Go to a writable directory and create a ``GNMT_inference.patch`` file. 2. Copy the following diff code to the file: - .. code-block:: cpp + .. code-block:: py diff --git a/nmt/inference.py b/nmt/inference.py index 2cbef07..e185490 100644 diff --git a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst index 3e18a780aab93b..39162e5c6fc78a 100644 --- a/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst +++ b/docs/articles_en/documentation/legacy-features/transition-legacy-conversion-api/legacy-model-optimizer-extensibility/[legacy]-model-optimizer-extensions/[legacy]-graph-transformation-extensions.rst @@ -457,7 +457,7 @@ For other examples of transformations with points, refer to the Generic Front Phase Transformations Enabled with Transformations Configuration File ################################################################################### -This type of transformation works similarly to the :ref:`Generic Front Phase Transformations ` but require a JSON configuration file to enable it similarly to :ref:`Node Name Pattern Front Phase Transformations ` and :ref:`Front Phase Transformations Using Start and End Points `. diff --git a/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst b/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst index b840228f19c09b..2365f721da1edb 100644 --- a/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst +++ b/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst @@ -734,9 +734,9 @@ The Model Hosting components install the OpenVINO™ Security Add-on Runtime Doc How to Use the OpenVINO™ Security Add-on ######################################## -This section requires interactions between the Model Developer/Independent Software vendor and the User. All roles must complete all applicable :ref:`set up steps ` and :ref:`installation steps ` before beginning this section. +This section requires interactions between the Model Developer/Independent Software vendor and the User. All roles must complete all applicable :ref:`set up steps ` and :ref:`installation steps ` before beginning this section. -This document uses the :ref:`face-detection-retail-0004 <../../omz_models_model_face_detection_retail_0044>` model as an example. +This document uses the :doc:`face-detection-retail-0004 <../../omz_models_model_face_detection_retail_0044>` model as an example. The following figure describes the interactions between the Model Developer, Independent Software Vendor, and User. diff --git a/docs/articles_en/documentation/openvino-extensibility/custom-gpu-operations.rst b/docs/articles_en/documentation/openvino-extensibility/custom-gpu-operations.rst index e9ff4af6a319cf..8e7f6f34e197da 100644 --- a/docs/articles_en/documentation/openvino-extensibility/custom-gpu-operations.rst +++ b/docs/articles_en/documentation/openvino-extensibility/custom-gpu-operations.rst @@ -350,7 +350,8 @@ Example Kernel Debugging Tips ############## -**Using ``printf`` in the OpenCL™ Kernels**. +**Using** ``printf`` **in the OpenCL™ Kernels**. + To debug the specific values, use ``printf`` in your kernels. However, be careful not to output excessively, which could generate too much data. The ``printf`` output is typical, so diff --git a/docs/articles_en/documentation/openvino-extensibility/custom-openvino-operations.rst b/docs/articles_en/documentation/openvino-extensibility/custom-openvino-operations.rst index 01d46c73447636..aafcfe23538281 100644 --- a/docs/articles_en/documentation/openvino-extensibility/custom-openvino-operations.rst +++ b/docs/articles_en/documentation/openvino-extensibility/custom-openvino-operations.rst @@ -9,7 +9,7 @@ Custom OpenVINO Operations custom operations to support models with operations not supported by OpenVINO. -OpenVINO™ Extension API allows you to register custom operations to support models with operations which OpenVINO™ does not support out-of-the-box. This capability requires writing code in C++, so if you are using Python to develop your application you need to build a separate shared library implemented in C++ first and load it in Python using ``add_extension`` API. Please refer to :ref:`Create library with extensions ` for more details on library creation and usage. The remining part of this document describes how to implement an operation class. +OpenVINO™ Extension API allows you to register custom operations to support models with operations which OpenVINO™ does not support out-of-the-box. This capability requires writing code in C++, so if you are using Python to develop your application you need to build a separate shared library implemented in C++ first and load it in Python using ``add_extension`` API. Please refer to :ref:`Create library with extensions ` for more details on library creation and usage. The remaining part of this document describes how to implement an operation class. Operation Class ############### diff --git a/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations/step3-main.rst b/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations/step3-main.rst index cf4961502f10e8..66c46124e1c1a2 100644 --- a/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations/step3-main.rst +++ b/docs/articles_en/documentation/openvino-extensibility/openvino-plugin-library/advanced-guides/low-precision-transformations/step3-main.rst @@ -69,7 +69,7 @@ Main transformations are the majority of low precision transformations. Transfor * :doc:`MultiplyPartialTransformation ` * :doc:`MVNTransformation ` * :doc:`NormalizeL2Transformation ` -* :doc:`PadTransformation` +* :doc:`PadTransformation ` * :doc:`PReluTransformation ` * :doc:`ReduceMaxTransformation ` * :doc:`ReduceMeanTransformation ` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.md b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.md deleted file mode 100644 index ed980d826dbb34..00000000000000 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.md +++ /dev/null @@ -1,135 +0,0 @@ -# AUGRUCell - -**Versioned name**: *AUAUGRUCell* - -**Category**: *Sequence processing* - -**Short description**: *AUGRUCell* represents a single AUGRU Cell (GRU with attentional update gate). - -**Detailed description**: The main difference between *AUGRUCell* and [GRUCell](../../../docs/ops/sequence/GRUCell_3.md) is the additional attention score input `A`, which is a multiplier for the update gate. -The AUGRU formula is based on the [paper arXiv:1809.03672](https://arxiv.org/abs/1809.03672). - -``` -AUGRU formula: - * - matrix multiplication - (.) - Hadamard product (element-wise) - - f, g - activation functions - z - update gate, r - reset gate, h - hidden gate - a - attention score - - rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr) - zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz) - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # 'linear_before_reset' is False - - zt' = (1 - at) (.) zt # multiplication by attention score - - Ht = (1 - zt') (.) ht + zt' (.) Ht-1 -``` - -**Attributes** - -* *hidden_size* - - * **Description**: *hidden_size* specifies hidden state size. - * **Range of values**: a positive integer - * **Type**: `int` - * **Required**: *yes* - -* *activations* - - * **Description**: activation functions for gates - * **Range of values**: *sigmoid*, *tanh* - * **Type**: a list of strings - * **Default value**: *sigmoid* for f, *tanh* for g - * **Required**: *no* - -* *activations_alpha, activations_beta* - - * **Description**: *activations_alpha, activations_beta* attributes of functions; applicability and meaning of these attributes depends on chosen activation functions - * **Range of values**: [] - * **Type**: `float[]` - * **Default value**: [] - * **Required**: *no* - -* *clip* - - * **Description**: *clip* specifies bound values *[-C, C]* for tensor clipping. Clipping is performed before activations. - * **Range of values**: `0.` - * **Type**: `float` - * **Default value**: `0.` that means the clipping is not applied - * **Required**: *no* - -* *linear_before_reset* - - * **Description**: *linear_before_reset* flag denotes, if the output of hidden gate is multiplied by the reset gate before or after linear transformation. - * **Range of values**: False - * **Type**: `boolean` - * **Default value**: False - * **Required**: *no*. - -**Inputs** - -* **1**: `X` - 2D tensor of type *T* and shape `[batch_size, input_size]`, input data. **Required.** - -* **2**: `H_t` - 2D tensor of type *T* and shape `[batch_size, hidden_size]`. Input with initial hidden state data. **Required.** - -* **3**: `W` - 2D tensor of type *T* and shape `[3 * hidden_size, input_size]`. The weights for matrix multiplication, gate order: zrh. **Required.** - -* **4**: `R` - 2D tensor of type *T* and shape `[3 * hidden_size, hidden_size]`. The recurrence weights for matrix multiplication, gate order: zrh. **Required.** - -* **5**: `B` - 2D tensor of type *T*. The biases. If *linear_before_reset* is set to `False`, then the shape is `[3 * hidden_size]`, gate order: zrh. Otherwise the shape is `[4 * hidden_size]` - the sum of biases for z and r gates (weights and recurrence weights), the biases for h gate are placed separately. **Required.** - -* **6**: `A` - 2D tensor of type *T* and shape `[batch_size, 1]`, the attention score. **Required.** - - -**Outputs** - -* **1**: `Ho` - 2D tensor of type *T* `[batch_size, hidden_size]`, the last output value of hidden state. - -**Types** - -* *T*: any supported floating-point type. - -**Example** -```xml - - - - - 1 - 16 - - - 1 - 128 - - - 384 - 16 - - - 384 - 128 - - - 384 - - - 1 - 1 - - - - - 1 - 4 - 128 - - - 1 - 128 - - - -``` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.rst new file mode 100644 index 00000000000000..f7d6d4010e816f --- /dev/null +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-cell.rst @@ -0,0 +1,157 @@ +.. {#openvino_docs_ops_internal_AUGRUCell} + +AUGRUCell +========= + +**Versioned name**: *AUAUGRUCell* + +**Category**: *Sequence processing* + +**Short description**: *AUGRUCell* represents a single AUGRU Cell (GRU with attentional +update gate). + +**Detailed description**: The main difference between *AUGRUCell* and +:doc:`GRUCell <../sequence/gru-cell-3>` is the additional attention score +input ``A``, which is a multiplier for the update gate. +The AUGRU formula is based on the `paper arXiv:1809.03672 `__. + +.. code-block:: py + + AUGRU formula: + * - matrix multiplication + (.) - Hadamard product (element-wise) + + f, g - activation functions + z - update gate, r - reset gate, h - hidden gate + a - attention score + + rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr) + zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz) + ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # 'linear_before_reset' is False + + zt' = (1 - at) (.) zt # multiplication by attention score + + Ht = (1 - zt') (.) ht + zt' (.) Ht-1 + + +**Attributes** + +* *hidden_size* + + * **Description**: *hidden_size* specifies hidden state size. + * **Range of values**: a positive integer + * **Type**: ``int`` + * **Required**: *yes* + +* *activations* + + * **Description**: activation functions for gates + * **Range of values**: *sigmoid*, *tanh* + * **Type**: a list of strings + * **Default value**: *sigmoid* for f, *tanh* for g + * **Required**: *no* + +* *activations_alpha, activations_beta* + + * **Description**: *activations_alpha, activations_beta* attributes of functions; + applicability and meaning of these attributes depends on chosen activation functions + * **Range of values**: [] + * **Type**: ``float[]`` + * **Default value**: [] + * **Required**: *no* + +* *clip* + + * **Description**: *clip* specifies bound values *[-C, C]* for tensor clipping. + Clipping is performed before activations. + * **Range of values**: ``0.`` + * **Type**: ``float`` + * **Default value**: ``0.`` that means the clipping is not applied + * **Required**: *no* + +* *linear_before_reset* + + * **Description**: *linear_before_reset* flag denotes, if the output of hidden gate + is multiplied by the reset gate before or after linear transformation. + * **Range of values**: False + * **Type**: ``boolean`` + * **Default value**: False + * **Required**: *no*. + +**Inputs** + +* **1**: ``X`` - 2D tensor of type *T* and shape ``[batch_size, input_size]``, input + data. **Required.** + +* **2**: ``H_t`` - 2D tensor of type *T* and shape ``[batch_size, hidden_size]``. + Input with initial hidden state data. **Required.** + +* **3**: ``W`` - 2D tensor of type *T* and shape ``[3 * hidden_size, input_size]``. + The weights for matrix multiplication, gate order: zrh. **Required.** + +* **4**: ``R`` - 2D tensor of type *T* and shape ``[3 * hidden_size, hidden_size]``. + The recurrence weights for matrix multiplication, gate order: zrh. **Required.** + +* **5**: ``B`` - 2D tensor of type *T*. The biases. If *linear_before_reset* is set + to ``False``, then the shape is ``[3 * hidden_size]``, gate order: zrh. Otherwise + the shape is ``[4 * hidden_size]`` - the sum of biases for z and r gates (weights and + recurrence weights), the biases for h gate are placed separately. **Required.** + +* **6**: ``A`` - 2D tensor of type *T* and shape ``[batch_size, 1]``, the attention + score. **Required.** + + +**Outputs** + +* **1**: ``Ho`` - 2D tensor of type *T* ``[batch_size, hidden_size]``, the last output + value of hidden state. + +**Types** + +* *T*: any supported floating-point type. + +**Example** + +.. code-block:: xml + :force: + + + + + + 1 + 16 + + + 1 + 128 + + + 384 + 16 + + + 384 + 128 + + + 384 + + + 1 + 1 + + + + + 1 + 4 + 128 + + + 1 + 128 + + + + diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.md b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.md deleted file mode 100644 index bb4f38b27a28e0..00000000000000 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.md +++ /dev/null @@ -1,161 +0,0 @@ -# AUGRUSequence - -**Versioned name**: *AUGRUSequence* - -**Category**: *Sequence processing* - -**Short description**: *AUGRUSequence* operation represents a series of AUGRU cells (GRU with attentional update gate). - -**Detailed description**: The main difference between *AUGRUSequence* and [GRUSequence](../../../docs/ops/sequence/GRUSequence_5.md) is the additional attention score input `A`, which is a multiplier for the update gate. -The AUGRU formula is based on the [paper arXiv:1809.03672](https://arxiv.org/abs/1809.03672). - -``` -AUGRU formula: - * - matrix multiplication - (.) - Hadamard product (element-wise) - - f, g - activation functions - z - update gate, r - reset gate, h - hidden gate - a - attention score - - rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr) - zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz) - ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # 'linear_before_reset' is False - - zt' = (1 - at) (.) zt # multiplication by attention score - - Ht = (1 - zt') (.) ht + zt' (.) Ht-1 -``` - -Activation functions for gates: *sigmoid* for f, *tanh* for g. -Only `forward` direction is supported, so `num_directions` is always equal to `1`. - -**Attributes** - -* *hidden_size* - - * **Description**: *hidden_size* specifies hidden state size. - * **Range of values**: a positive integer - * **Type**: `int` - * **Required**: *yes* - -* *activations* - - * **Description**: activation functions for gates - * **Range of values**: *sigmoid*, *tanh* - * **Type**: a list of strings - * **Default value**: *sigmoid* for f, *tanh* for g - * **Required**: *no* - -* *activations_alpha, activations_beta* - - * **Description**: *activations_alpha, activations_beta* attributes of functions; applicability and meaning of these attributes depends on chosen activation functions - * **Range of values**: [] - * **Type**: `float[]` - * **Default value**: [] - * **Required**: *no* - -* *clip* - - * **Description**: *clip* specifies bound values *[-C, C]* for tensor clipping. Clipping is performed before activations. - * **Range of values**: `0.` - * **Type**: `float` - * **Default value**: `0.` that means the clipping is not applied - * **Required**: *no* - -* *direction* - - * **Description**: Specify if the RNN is forward, reverse, or bidirectional. If it is one of *forward* or *reverse* then `num_directions = 1`, if it is *bidirectional*, then `num_directions = 2`. This `num_directions` value specifies input/output shape requirements. - * **Range of values**: *forward* - * **Type**: `string` - * **Default value**: *forward* - * **Required**: *no* - -* *linear_before_reset* - - * **Description**: *linear_before_reset* flag denotes, if the output of hidden gate is multiplied by the reset gate before or after linear transformation. - * **Range of values**: False - * **Type**: `boolean` - * **Default value**: False - * **Required**: *no* - -**Inputs** - -* **1**: `X` - 3D tensor of type *T1* `[batch_size, seq_length, input_size]`, input data. **Required.** - -* **2**: `H_t` - 3D tensor of type *T1* and shape `[batch_size, num_directions, hidden_size]`. Input with initial hidden state data. **Required.** - -* **3**: `sequence_lengths` - 1D tensor of type *T2* and shape `[batch_size]`. Specifies real sequence lengths for each batch element. **Required.** - -* **4**: `W` - 3D tensor of type *T1* and shape `[num_directions, 3 * hidden_size, input_size]`. The weights for matrix multiplication, gate order: zrh. **Required.** - -* **5**: `R` - 3D tensor of type *T1* and shape `[num_directions, 3 * hidden_size, hidden_size]`. The recurrence weights for matrix multiplication, gate order: zrh. **Required.** - -* **6**: `B` - 2D tensor of type *T1*. The biases. If *linear_before_reset* is set to `False`, then the shape is `[num_directions, 3 * hidden_size]`, gate order: zrh. Otherwise the shape is `[num_directions, 4 * hidden_size]` - the sum of biases for z and r gates (weights and recurrence weights), the biases for h gate are placed separately. **Required.** - -* **7**: `A` - 3D tensor of type *T1* `[batch_size, seq_length, 1]`, the attention score. **Required.** - -**Outputs** - -* **1**: `Y` - 4D tensor of type *T1* `[batch_size, num_directions, seq_length, hidden_size]`, concatenation of all the intermediate output values of the hidden. - -* **2**: `Ho` - 3D tensor of type *T1* `[batch_size, num_directions, hidden_size]`, the last output value of hidden state. - -**Types** - -* *T1*: any supported floating-point type. -* *T2*: any supported integer type. - -**Example** -```xml - - - - - 1 - 4 - 16 - - - 1 - 1 - 128 - - - 1 - - - 1 - 384 - 16 - - - 1 - 384 - 128 - - - 1 - 384 - - - 1 - 4 - 1 - - - - - 1 - 1 - 4 - 128 - - - 1 - 1 - 128 - - - -``` diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.rst new file mode 100644 index 00000000000000..55035aab1e9908 --- /dev/null +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/internal/augru-sequence.rst @@ -0,0 +1,190 @@ +.. {#openvino_docs_ops_internal_AUGRUSequence} + +AUGRUSequence +============= + +**Versioned name**: *AUGRUSequence* + +**Category**: *Sequence processing* + +**Short description**: *AUGRUSequence* operation represents a series of AUGRU cells +(GRU with attentional update gate). + +**Detailed description**: The main difference between *AUGRUSequence* and +:doc:`GRUSequence <../sequence/gru-sequence-5>` is the additional attention score +input ``A``, which is a multiplier for the update gate. The AUGRU formula is based on +the `paper arXiv:1809.03672 `__. + +.. code-block:: py + + AUGRU formula: + * - matrix multiplication + (.) - Hadamard product (element-wise) + + f, g - activation functions + z - update gate, r - reset gate, h - hidden gate + a - attention score + + rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr) + zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz) + ht = g(Xt*(Wh^T) + (rt (.) Ht-1)*(Rh^T) + Rbh + Wbh) # 'linear_before_reset' is False + + zt' = (1 - at) (.) zt # multiplication by attention score + + Ht = (1 - zt') (.) ht + zt' (.) Ht-1 + + +Activation functions for gates: *sigmoid* for f, *tanh* for g. +Only ``forward`` direction is supported, so ``num_directions`` is always equal to ``1``. + +**Attributes** + +* *hidden_size* + + * **Description**: *hidden_size* specifies hidden state size. + * **Range of values**: a positive integer + * **Type**: ``int`` + * **Required**: *yes* + +* *activations* + + * **Description**: activation functions for gates + * **Range of values**: *sigmoid*, *tanh* + * **Type**: a list of strings + * **Default value**: *sigmoid* for f, *tanh* for g + * **Required**: *no* + +* *activations_alpha, activations_beta* + + * **Description**: *activations_alpha, activations_beta* attributes of functions; + applicability and meaning of these attributes depends on chosen activation functions + * **Range of values**: [] + * **Type**: ``float[]`` + * **Default value**: [] + * **Required**: *no* + +* *clip* + + * **Description**: *clip* specifies bound values *[-C, C]* for tensor clipping. + Clipping is performed before activations. + * **Range of values**: ``0.`` + * **Type**: ``float`` + * **Default value**: ``0.`` that means the clipping is not applied + * **Required**: *no* + +* *direction* + + * **Description**: Specify if the RNN is forward, reverse, or bidirectional. If it is + one of *forward* or *reverse* then ``num_directions = 1``, if it is *bidirectional*, + then ``num_directions = 2``. This ``num_directions`` value specifies input/output + shape requirements. + * **Range of values**: *forward* + * **Type**: ``string`` + * **Default value**: *forward* + * **Required**: *no* + +* *linear_before_reset* + + * **Description**: *linear_before_reset* flag denotes, if the output of hidden gate is + multiplied by the reset gate before or after linear transformation. + * **Range of values**: False + * **Type**: ``boolean`` + * **Default value**: False + * **Required**: *no* + +**Inputs** + +* **1**: ``X`` - 3D tensor of type *T1* ``[batch_size, seq_length, input_size]``, + input data. **Required.** + +* **2**: ``H_t`` - 3D tensor of type *T1* and shape ``[batch_size, num_directions, + hidden_size]``. Input with initial hidden state data. **Required.** + +* **3**: ``sequence_lengths`` - 1D tensor of type *T2* and shape ``[batch_size]``. + Specifies real sequence lengths for each batch element. **Required.** + +* **4**: ``W`` - 3D tensor of type *T1* and shape ``[num_directions, 3 * hidden_size, + input_size]``. The weights for matrix multiplication, gate order: zrh. **Required.** + +* **5**: ``R`` - 3D tensor of type *T1* and shape ``[num_directions, 3 * hidden_size, + hidden_size]``. The recurrence weights for matrix multiplication, + gate order: zrh. **Required.** + +* **6**: ``B`` - 2D tensor of type *T1*. The biases. If *linear_before_reset* is set + to ``False``, then the shape is ``[num_directions, 3 * hidden_size]``, + gate order: zrh. Otherwise the shape is ``[num_directions, 4 * hidden_size]`` - the sum of + biases for z and r gates (weights and recurrence weights), the biases for h gate are + placed separately. **Required.** + +* **7**: ``A`` - 3D tensor of type *T1* ``[batch_size, seq_length, 1]``, + the attention score. **Required.** + +**Outputs** + +* **1**: ``Y`` - 4D tensor of type *T1* ``[batch_size, num_directions, seq_length, + hidden_size]``, concatenation of all the intermediate output values of the hidden. + +* **2**: ``Ho`` - 3D tensor of type *T1* ``[batch_size, num_directions, hidden_size]``, + the last output value of hidden state. + +**Types** + +* *T1*: any supported floating-point type. +* *T2*: any supported integer type. + +**Example** + +.. code-block:: xml + :force: + + + + + + 1 + 4 + 16 + + + 1 + 1 + 128 + + + 1 + + + 1 + 384 + 16 + + + 1 + 384 + 128 + + + 1 + 384 + + + 1 + 4 + 1 + + + + + 1 + 1 + 4 + 128 + + + 1 + 1 + 128 + + + + diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/depth-to-space-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/depth-to-space-1.rst index 1df751ac0c5f68..1f8a380b5bde3b 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/depth-to-space-1.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/depth-to-space-1.rst @@ -12,15 +12,20 @@ DepthToSpace **Category**: *Data movement* -**Short description**: *DepthToSpace* operation rearranges data from the depth dimension of the input tensor into spatial dimensions of the output tensor. +**Short description**: *DepthToSpace* operation rearranges data from the depth dimension +of the input tensor into spatial dimensions of the output tensor. **Detailed description** -*DepthToSpace* operation permutes elements from the input tensor with shape ``[N, C, D1, D2, ..., DK]``, to the output tensor where values from the input depth dimension (features) ``C`` are moved to spatial blocks in ``D1``, ..., ``DK``. +*DepthToSpace* operation permutes elements from the input tensor with shape ``[N, C, D1, +D2, ..., DK]``, to the output tensor where values from the input depth dimension +(features) ``C`` are moved to spatial blocks in ``D1``, ..., ``DK``. -The operation is equivalent to the following transformation of the input tensor ``data`` with ``K`` spatial dimensions of shape ``[N, C, D1, D2, ..., DK]`` to *Y* output tensor. If ``mode = blocks_first``: +The operation is equivalent to the following transformation of the input tensor ``data`` +with ``K`` spatial dimensions of shape ``[N, C, D1, D2, ..., DK]`` to *Y* output tensor. +If ``mode = blocks_first``: -.. code-block:: cpp +.. code-block:: py x' = reshape(data, [N, block_size, block_size, ..., block_size, C / (block_size ^ K), D1, D2, ..., DK]) x'' = transpose(x', [0, K + 1, K + 2, 1, K + 3, 2, K + 4, 3, ..., K + (K + 1), K]) @@ -28,7 +33,7 @@ The operation is equivalent to the following transformation of the input tensor If ``mode = depth_first``: -.. code-block:: cpp +.. code-block:: py x' = reshape(data, [N, C / (block_size ^ K), block_size, block_size, ..., block_size, D1, D2, ..., DK]) x'' = transpose(x', [0, 1, K + 2, 2, K + 3, 3, K + 4, 4, ..., K + (K + 1), K + 1]) diff --git a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-depth-1.rst b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-depth-1.rst index 47ac3bf3fe3c98..599b638c970454 100644 --- a/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-depth-1.rst +++ b/docs/articles_en/documentation/openvino-ir-format/operation-sets/operation-specs/movement/space-to-depth-1.rst @@ -5,23 +5,28 @@ SpaceToDepth .. meta:: - :description: Learn about SpaceToDepth-1 - a data movement operation, + :description: Learn about SpaceToDepth-1 - a data movement operation, which can be performed on a single input tensor. **Versioned name**: *SpaceToDepth-1* **Category**: *Data movement* -**Short description**: *SpaceToDepth* operation rearranges data from the spatial dimensions of the input tensor into depth dimension of the output tensor. +**Short description**: *SpaceToDepth* operation rearranges data from the spatial dimensions +of the input tensor into depth dimension of the output tensor. **Detailed description** -*SpaceToDepth* operation permutes element from the input tensor with shape ``[N, C, D1, D2, ..., DK]``, to the output tensor where values from the input spatial dimensions ``D1, D2, ..., DK`` are moved to the new depth dimension. +*SpaceToDepth* operation permutes element from the input tensor with shape ``[N, C, D1, D2, +..., DK]``, to the output tensor where values from the input spatial dimensions ``D1, D2, +..., DK`` are moved to the new depth dimension. -The operation is equivalent to the following transformation of the input tensor ``data`` with ``K`` spatial dimensions of shape ``[N, C, D1, D2, ..., DK]`` to *Y* output tensor. If ``mode = blocks_first``: +The operation is equivalent to the following transformation of the input tensor ``data`` +with ``K`` spatial dimensions of shape ``[N, C, D1, D2, ..., DK]`` to *Y* output tensor. +If ``mode = blocks_first``: -.. code-block:: cpp +.. code-block:: py x' = reshape(data, [N, C, D1 / block_size, block_size, D2 / block_size, block_size, ... , DK / block_size, block_size]) @@ -31,7 +36,7 @@ The operation is equivalent to the following transformation of the input tensor If ``mode = depth_first``: -.. code-block:: cpp +.. code-block:: py x' = reshape(data, [N, C, D1 / block_size, block_size, D2 / block_size, block_size, ..., DK / block_size, block_size]) @@ -43,7 +48,8 @@ If ``mode = depth_first``: * *block_size* - * **Description**: specifies the size of the value block to be moved. The spatial dimensions must be evenly divided by ``block_size``. + * **Description**: specifies the size of the value block to be moved. The spatial + dimensions must be evenly divided by ``block_size``. * **Range of values**: a positive integer * **Type**: ``int`` * **Default value**: 1 @@ -51,9 +57,10 @@ If ``mode = depth_first``: * *mode* - * **Description**: specifies how the output depth dimension is gathered from block coordinates and the old depth dimension. + * **Description**: specifies how the output depth dimension is gathered from block + coordinates and the old depth dimension. * **Range of values**: - + * *blocks_first*: the output depth is gathered from ``[block_size, ..., block_size, C]`` * *depth_first*: the output depth is gathered from ``[C, block_size, ..., block_size]`` * **Type**: ``string`` @@ -61,11 +68,12 @@ If ``mode = depth_first``: **Inputs** -* **1**: ``data`` - input tensor of type *T* with rank >= 3. **Required.** +* **1**: ``data`` - input tensor of type *T* with rank >= 3. **Required.** **Outputs** -* **1**: permuted tensor of type *T* and shape ``[N, C * (block_size ^ K), D1 / block_size, D2 / block_size, ..., DK / block_size]``. +* **1**: permuted tensor of type *T* and shape ``[N, C * (block_size ^ K), D1 / block_size, + D2 / block_size, ..., DK / block_size]``. **Types** diff --git a/docs/articles_en/get-started/configurations/configurations-intel-gpu.rst b/docs/articles_en/get-started/configurations/configurations-intel-gpu.rst index 88205f18135298..e6d8b3a4170d04 100644 --- a/docs/articles_en/get-started/configurations/configurations-intel-gpu.rst +++ b/docs/articles_en/get-started/configurations/configurations-intel-gpu.rst @@ -98,7 +98,7 @@ To check if the driver has been installed: Your device driver has been updated and is now ready to use your GPU. -.. _wsl-install: +.. _wsl_install: Windows Subsystem for Linux (WSL) ################################# @@ -111,7 +111,7 @@ WSL allows developers to run a GNU/Linux development environment for the Windows Below are the required steps to make it work with OpenVINO: -- Install the GPU drivers as described :ref:`above `. +- Install the GPU drivers as described :ref:`above `. - Run the following commands in PowerShell to view the latest version of WSL2: .. code-block:: sh diff --git a/docs/articles_en/get-started/install-openvino/install-openvino-archive-macos.rst b/docs/articles_en/get-started/install-openvino/install-openvino-archive-macos.rst index 07b87d20b48611..31526767b89fac 100644 --- a/docs/articles_en/get-started/install-openvino/install-openvino-archive-macos.rst +++ b/docs/articles_en/get-started/install-openvino/install-openvino-archive-macos.rst @@ -203,8 +203,8 @@ Additional Resources #################### * :doc:`Troubleshooting Guide for OpenVINO Installation & Configuration <../install-openvino>` -* Converting models for use with OpenVINO™: :ref:`Model Optimizer User Guide ` -* Writing your own OpenVINO™ applications: :ref:`OpenVINO™ Runtime User Guide ` +* :doc:`Convert models for use with OpenVINO™ <../../../openvino-workflow/model-preparation/convert-model-to-ir>` +* :doc:`Write your own OpenVINO™ applications <../../../openvino-workflow/running-inference/integrate-openvino-with-your-application>` * Sample applications: :doc:`OpenVINO™ Toolkit Samples Overview <../../../learn-openvino/openvino-samples>` * Pre-trained deep learning models: :doc:`Overview of OpenVINO™ Toolkit Pre-Trained Models <../../../documentation/legacy-features/model-zoo>` * IoT libraries and code samples in the GitHUB repository: `Intel® IoT Developer Kit `__ diff --git a/docs/articles_en/get-started/install-openvino/install-openvino-archive-windows.rst b/docs/articles_en/get-started/install-openvino/install-openvino-archive-windows.rst index 710b927bb7bddc..db50ff234cb7ed 100644 --- a/docs/articles_en/get-started/install-openvino/install-openvino-archive-windows.rst +++ b/docs/articles_en/get-started/install-openvino/install-openvino-archive-windows.rst @@ -248,8 +248,8 @@ Additional Resources #################### * :doc:`Troubleshooting Guide for OpenVINO Installation & Configuration <../install-openvino>` -* Converting models for use with OpenVINO™: :ref:`Model Optimizer Developer Guide ` -* Writing your own OpenVINO™ applications: :ref:`OpenVINO™ Runtime User Guide ` +* :doc:`Convert models for use with OpenVINO™ <../../../openvino-workflow/model-preparation/convert-model-to-ir>` +* :doc:`Write your own OpenVINO™ applications <../../../openvino-workflow/running-inference/integrate-openvino-with-your-application>` * Sample applications: :doc:`OpenVINO™ Toolkit Samples Overview <../../../learn-openvino/openvino-samples>` * Pre-trained deep learning models: :doc:`Overview of OpenVINO™ Toolkit Pre-Trained Models <../../../documentation/legacy-features/model-zoo>` * IoT libraries and code samples in the GitHUB repository: `Intel® IoT Developer Kit `__ diff --git a/docs/articles_en/openvino-workflow/running-inference/changing-input-shape.rst b/docs/articles_en/openvino-workflow/running-inference/changing-input-shape.rst index c2be99d7f475c0..4ddfa5d8b7b863 100644 --- a/docs/articles_en/openvino-workflow/running-inference/changing-input-shape.rst +++ b/docs/articles_en/openvino-workflow/running-inference/changing-input-shape.rst @@ -191,7 +191,7 @@ Once you set the input shape of the model, call the ``compile_model`` method to get a ``CompiledModel`` object for inference with updated shapes. There are other approaches to change model input shapes during the stage of -:ref:`IR generation ` or :ref:`model representation ` in OpenVINO Runtime. +:doc:`IR generation <../model-preparation/setting-input-shapes>` or :doc:`model representation <./integrate-openvino-with-your-application/model-representation>` in OpenVINO Runtime. .. important:: diff --git a/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/gpu-device.rst b/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/gpu-device.rst index 126051473c79b6..023b2d1f189b4e 100644 --- a/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/gpu-device.rst +++ b/docs/articles_en/openvino-workflow/running-inference/inference-devices-and-modes/gpu-device.rst @@ -213,7 +213,7 @@ Alternatively, it can be enabled explicitly via the device notion, for example ` :fragment: compile_model_auto_batch -For more details, see the :doc:`Automatic batching`. +For more details, see the :doc:`Automatic batching `. Multi-stream Execution +++++++++++++++++++++++++++++++++++++++ @@ -230,7 +230,7 @@ which means that the incoming infer requests can be processed simultaneously. When multiple inferences of the same model need to be executed in parallel, the multi-stream feature is preferred to multiple instances of the model or application. The reason for this is that the implementation of streams in the GPU plugin supports weight memory sharing across streams, thus, memory consumption may be lower, compared to the other approaches. -For more details, see the :doc:`optimization guide<../optimize-inference>`. +For more details, see the :doc:`optimization guide <../optimize-inference>`. Dynamic Shapes +++++++++++++++++++++++++++++++++++++++ @@ -365,9 +365,9 @@ The GPU plugin has the following additional preprocessing options: With such preprocessing, GPU plugin will expect ``ov::intel_gpu::ocl::ClImage2DTensor`` (or derived) to be passed for each NV12 plane via ``ov::InferRequest::set_tensor()`` or ``ov::InferRequest::set_tensors()`` methods. -For usage examples, refer to the :doc:`RemoteTensor API`. +For usage examples, refer to the :doc:`RemoteTensor API `. -For more details, see the :doc:`preprocessing API<../optimize-inference/optimize-preprocessing>`. +For more details, see the :doc:`preprocessing API <../optimize-inference/optimize-preprocessing>`. Model Caching +++++++++++++++++++++++++++++++++++++++ @@ -465,7 +465,7 @@ GPU Performance Checklist: Summary Since OpenVINO relies on the OpenCL kernels for the GPU implementation, many general OpenCL tips apply: -- Prefer ``FP16`` inference precision over ``FP32``, as Model Conversion API can generate both variants, and the ``FP32`` is the default. To learn about optimization options, see :doc:`Optimization Guide<../../model-optimization>`. +- Prefer ``FP16`` inference precision over ``FP32``, as Model Conversion API can generate both variants, and the ``FP32`` is the default. To learn about optimization options, see :doc:`Optimization Guide <../../model-optimization>`. - Try to group individual infer jobs by using :doc:`automatic batching `. - Consider :doc:`caching <../optimize-inference/optimizing-latency/model-caching-overview>` to minimize model load time. - If your application performs inference on the CPU alongside the GPU, or otherwise loads the host heavily, make sure that the OpenCL driver threads do not starve. :doc:`CPU configuration options ` can be used to limit the number of inference threads for the CPU plugin. diff --git a/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application.rst b/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application.rst index ff8c49d06f2107..9cdc6cae6460fc 100644 --- a/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application.rst +++ b/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application.rst @@ -394,6 +394,7 @@ Create Structure for project: .. doxygensnippet:: docs/snippets/src/main.cpp :language: cpp :fragment: [part7] + :force: .. tab-item:: C :sync: c @@ -401,6 +402,7 @@ Create Structure for project: .. doxygensnippet:: docs/snippets/src/main.c :language: cpp :fragment: [part7] + :force: Create Cmake Script diff --git a/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation.rst b/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation.rst index 776bd0f37f986c..8fdc0d851631c2 100644 --- a/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation.rst +++ b/docs/articles_en/openvino-workflow/running-inference/integrate-openvino-with-your-application/model-representation.rst @@ -77,7 +77,7 @@ the conversion will throw an exception. For example: :sync: py .. doxygensnippet:: docs/snippets/ov_model_snippets.py - :language: cpp + :language: python :fragment: [ov:partial_shape] .. tab-item:: C++ @@ -191,7 +191,7 @@ OpenVINO™ provides several debug capabilities: :sync: py .. doxygensnippet:: docs/snippets/ov_model_snippets.py - :language: cpp + :language: python :fragment: [ov:visualize] .. tab-item:: C++ @@ -227,7 +227,7 @@ OpenVINO™ provides several debug capabilities: :sync: py .. doxygensnippet:: docs/snippets/ov_model_snippets.py - :language: cpp + :language: python :fragment: [ov:serialize] .. tab-item:: C++ diff --git a/docs/articles_en/openvino-workflow/running-inference/optimize-inference.rst b/docs/articles_en/openvino-workflow/running-inference/optimize-inference.rst index 5dd499e03c5aeb..55555ac83a37de 100644 --- a/docs/articles_en/openvino-workflow/running-inference/optimize-inference.rst +++ b/docs/articles_en/openvino-workflow/running-inference/optimize-inference.rst @@ -51,7 +51,7 @@ Although inference performed in OpenVINO Runtime can be configured with a multit Secondly, such optimization may not translate well to other device-model combinations. In other words, one set of execution parameters is likely to result in different performance when used under different conditions. For example: -* both the CPU and GPU support the notion of :ref:`streams `, yet they deduce their optimal number very differently. +* both the CPU and GPU support the notion of :doc:`streams <./optimize-inference/optimizing-throughput/advanced_throughput_options>`, yet they deduce their optimal number very differently. * Even among devices of the same type, different execution configurations can be considered optimal, as in the case of instruction sets or the number of cores for the CPU and the batch size for the GPU. * Different models have different optimal parameter configurations, considering factors such as compute vs memory-bandwidth, inference precision, and possible model quantization. * Execution "scheduling" impacts performance strongly and is highly device-specific, for example, GPU-oriented optimizations like batching, combining multiple inputs to achieve the optimal throughput, :doc:`do not always map well to the CPU `. diff --git a/docs/articles_en/openvino-workflow/running-inference/optimize-inference/optimizing-latency.rst b/docs/articles_en/openvino-workflow/running-inference/optimize-inference/optimizing-latency.rst index b612de199079f3..c4db50b827f0d6 100644 --- a/docs/articles_en/openvino-workflow/running-inference/optimize-inference/optimizing-latency.rst +++ b/docs/articles_en/openvino-workflow/running-inference/optimize-inference/optimizing-latency.rst @@ -31,7 +31,7 @@ Typically, human expertise is required to get more "throughput" out of the devic :doc:`OpenVINO performance hints ` is a recommended way for performance configuration, which is both device-agnostic and future-proof. -**When multiple models are to be used simultaneously**, consider running inference on separate devices for each of them. Finally, when multiple models are executed in parallel on a device, using additional ``ov::hint::model_priority`` may help to define relative priorities of the models. Refer to the documentation on the :ref:`OpenVINO feature support for devices <../../../about-openvino/compatibility-and-support/supported-devices>` to check if your device supports the feature. +**When multiple models are to be used simultaneously**, consider running inference on separate devices for each of them. Finally, when multiple models are executed in parallel on a device, using additional ``ov::hint::model_priority`` may help to define relative priorities of the models. Refer to the documentation on the :doc:`OpenVINO feature support for devices <../../../../about-openvino/compatibility-and-support/supported-devices>` to check if your device supports the feature. **First-Inference Latency and Model Load/Compile Time** diff --git a/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst b/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst index 3b8d289438aef8..735f30b07ddc1a 100644 --- a/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst +++ b/docs/articles_en/openvino-workflow/running-inference/stateful-models.rst @@ -72,11 +72,11 @@ There are three methods of turning an OpenVINO model into a stateful one: are recognized and applied automatically. The drawback is, the tool does not work with all models. -* :ref:`MakeStateful transformation.` - enables the user to choose which +* :ref:`MakeStateful transformation ` - enables the user to choose which pairs of Parameter and Result to replace, as long as the paired operations are of the same shape and element type. -* :ref:`LowLatency2 transformation.` - automatically detects and replaces +* :ref:`LowLatency2 transformation ` - automatically detects and replaces Parameter and Result pairs connected to hidden and cell state inputs of LSTM/RNN/GRU operations or Loop/TensorIterator operations. diff --git a/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst b/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst index 307c385ab5b555..5ac716aca8f607 100644 --- a/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst +++ b/docs/articles_en/openvino-workflow/running-inference/stateful-models/obtaining-stateful-openvino-model.rst @@ -100,7 +100,7 @@ input, as shown in the picture above. These inputs should set the initial value initialization of ReadValue operations. However, such initialization is not supported in the current State API implementation. Input values are ignored, and the initial values for the ReadValue operations are set to zeros unless the user specifies otherwise via -:ref:`State API `. +:doc:`State API <../stateful-models>`. Applying LowLatency2 Transformation ++++++++++++++++++++++++++++++++++++ @@ -181,7 +181,7 @@ Applying LowLatency2 Transformation :fragment: [ov:low_latency_2] -4. Use state API. See sections :ref:`OpenVINO State API `, +4. Use state API. See sections :doc:`OpenVINO State API <../stateful-models>`, :ref:`Stateful Model Inference `. .. image:: ../../../_static/images/low_latency_limitation_2.svg diff --git a/docs/sphinx_setup/api/nodejs_api/addon.rst b/docs/sphinx_setup/api/nodejs_api/addon.rst index a3a3b9722e1837..27542e0b7be1be 100644 --- a/docs/sphinx_setup/api/nodejs_api/addon.rst +++ b/docs/sphinx_setup/api/nodejs_api/addon.rst @@ -33,7 +33,7 @@ Property addon The **openvino-node** package exports ``addon`` which contains the following properties: -.. code-block:: json +.. code-block:: ts interface NodeAddon { Core: CoreConstructor; @@ -55,7 +55,7 @@ Properties .. rubric:: Core -.. code-block:: json +.. code-block:: ts Core: CoreConstructor @@ -70,7 +70,7 @@ Properties -.. code-block:: json +.. code-block:: ts PartialShape: PartialShapeConstructor @@ -83,7 +83,7 @@ Properties .. rubric:: Tensor -.. code-block:: json +.. code-block:: ts Tensor: TensorConstructor @@ -98,7 +98,7 @@ Properties -.. code-block:: json +.. code-block:: ts element: typeof element @@ -112,7 +112,7 @@ Properties -.. code-block:: json +.. code-block:: ts preprocess: { PrePostProcessor: PrePostProcessorConstructor; diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst index 15ba79369280b3..b35430cbc645cd 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/element.rst @@ -5,7 +5,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts f32: number @@ -16,7 +16,7 @@ Enumeration element .. rubric:: f64 -.. code-block:: json +.. code-block:: ts f64: number @@ -27,7 +27,7 @@ Enumeration element .. rubric:: i16 -.. code-block:: json +.. code-block:: ts i16: number @@ -39,7 +39,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts i32: number @@ -51,7 +51,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts i64: number @@ -63,7 +63,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts i8: number @@ -75,7 +75,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts u16: number @@ -87,7 +87,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts u32: number @@ -99,7 +99,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts u64: number @@ -111,7 +111,7 @@ Enumeration element -.. code-block:: json +.. code-block:: ts u8: number diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst index 340e5afe81668b..ca615462a779c0 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/enums/resizeAlgorithm.rst @@ -5,7 +5,7 @@ Enumeration resizeAlgorithm -.. code-block:: json +.. code-block:: ts RESIZE_CUBIC: number @@ -17,7 +17,7 @@ Enumeration resizeAlgorithm -.. code-block:: json +.. code-block:: ts RESIZE_LINEAR: number @@ -29,7 +29,7 @@ Enumeration resizeAlgorithm -.. code-block:: json +.. code-block:: ts RESIZE_NEAREST: number diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst index 4156012a67c1df..ce151327f985a3 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CompiledModel.rst @@ -1,7 +1,7 @@ Interface CompiledModel ======================= -.. code-block:: json +.. code-block:: ts interface CompiledModel {     inputs: Output[]; @@ -22,7 +22,7 @@ Properties -.. code-block:: json +.. code-block:: ts inputs: Output [] @@ -35,7 +35,7 @@ Properties -.. code-block:: json +.. code-block:: ts outputs: Output [] @@ -50,7 +50,7 @@ Methods .. rubric:: createInferRequest -.. code-block:: json +.. code-block:: ts createInferRequest(): InferRequest @@ -65,7 +65,7 @@ Methods -.. code-block:: json +.. code-block:: ts input(nameOrId?): Output @@ -74,7 +74,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts nameOrId: string|number @@ -88,13 +88,13 @@ Methods .. rubric:: output -.. code-block:: json +.. code-block:: ts output(nameOrId?): Output - ``Optional`` - .. code-block:: json + .. code-block:: ts nameOrId: string|number diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst index 152d88d0ba6274..3d411edf48e552 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Core.rst @@ -1,7 +1,7 @@ Interface Core ============== -.. code-block:: json +.. code-block:: ts interface Core {     compileModel(model, device, config?): Promise; @@ -23,7 +23,7 @@ Methods .. rubric:: compileModel -.. code-block:: json +.. code-block:: ts compileModel(model, device, config?): Promise @@ -35,7 +35,7 @@ Methods - device: string - ``Optional`` - .. code-block:: json + .. code-block:: ts config: {     [option: string]: string; @@ -54,7 +54,7 @@ Methods .. rubric:: compileModelSync -.. code-block:: json +.. code-block:: ts compileModelSync(model, device, config?): CompiledModel @@ -65,7 +65,7 @@ Methods - device: string - ``Optional`` - .. code-block:: json + .. code-block:: ts config: {     [option: string]: string; @@ -84,7 +84,7 @@ Methods .. rubric:: readModel -.. code-block:: json +.. code-block:: ts readModel(modelPath, weightsPath?): Promise @@ -94,7 +94,7 @@ Methods - modelPath: string - ``Optional`` - .. code-block:: json + .. code-block:: ts weightsPath: string @@ -104,7 +104,7 @@ Methods - Defined in `addon.ts:34 `__ -.. code-block:: json +.. code-block:: ts readModel(modelBuffer, weightsBuffer?): Promise @@ -113,7 +113,7 @@ Methods - modelBuffer: Uint8Array - ``Optional`` - .. code-block:: json + .. code-block:: ts weightsBuffer: Uint8Array @@ -127,7 +127,7 @@ Methods .. rubric:: readModelSync -.. code-block:: json +.. code-block:: ts readModelSync(modelPath, weightsPath?): Model @@ -137,7 +137,7 @@ Methods - modelPath: string - ``Optional`` - .. code-block:: json + .. code-block:: ts weightsPath: string @@ -146,7 +146,7 @@ Methods - Defined in `addon.ts:37 `__ -.. code-block:: json +.. code-block:: ts readModelSync(modelBuffer, weightsBuffer?): Model @@ -156,7 +156,7 @@ Methods - modelBuffer: Uint8Array - ``Optional`` - .. code-block:: json + .. code-block:: ts weightsBuffer: Uint8Array diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst index 4f8051a17e022c..d4a8bdb3809f65 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/CoreConstructor.rst @@ -1,7 +1,7 @@ Interface CoreConstructor ========================= -.. code-block:: json +.. code-block:: ts interface CoreConstructor { new Core(): Core; @@ -12,7 +12,7 @@ Interface CoreConstructor .. rubric:: constructor -.. code-block:: json +.. code-block:: ts new Core(): Core diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst index 1468c47d24dc85..e3ad4f67bb9fc0 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InferRequest.rst @@ -4,7 +4,7 @@ InferRequest .. rubric:: Interface InferRequest -.. code-block:: json +.. code-block:: ts interface InferRequest { getCompiledModel(): CompiledModel; @@ -31,7 +31,7 @@ Methods .. rubric:: getCompiledModel -.. code-block:: json +.. code-block:: ts getCompiledModel(): CompiledModel @@ -43,7 +43,7 @@ Methods .. rubric:: getInputTensor -.. code-block:: json +.. code-block:: ts getInputTensor(idx?): Tensor @@ -52,7 +52,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts idx: number @@ -64,7 +64,7 @@ Methods .. rubric:: getOutputTensor -.. code-block:: json +.. code-block:: ts getOutputTensor(idx?): Tensor @@ -73,7 +73,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts idx: number @@ -85,7 +85,7 @@ Methods .. rubric:: getTensor -.. code-block:: json +.. code-block:: ts getTensor(nameOrOutput): Tensor @@ -101,7 +101,7 @@ Methods .. rubric:: infer -.. code-block:: json +.. code-block:: ts infer(inputData?): { [outputName: string]: Tensor; @@ -112,7 +112,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts inputData: { [inputName: string]: Tensor | SupportedTypedArray; @@ -120,7 +120,7 @@ Methods **Returns** -.. code-block:: json +.. code-block:: ts { [outputName: string]: Tensor; @@ -135,7 +135,7 @@ Methods .. rubric:: inferAsync -.. code-block:: json +.. code-block:: ts inferAsync(inputData): Promise<{ [outputName: string]: Tensor; @@ -145,7 +145,7 @@ Methods - - .. code-block:: json + .. code-block:: ts inputData: Tensor[] | { [inputName: string]: Tensor; @@ -153,7 +153,7 @@ Methods **Returns** -.. code-block:: json +.. code-block:: ts Promise<{ [outputName: string]: Tensor; @@ -165,7 +165,7 @@ Methods .. rubric:: setInputTensor -.. code-block:: json +.. code-block:: ts setInputTensor(idxOrTensor, tensor?): void @@ -176,7 +176,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts tensor: Tensor @@ -189,7 +189,7 @@ Methods .. rubric:: setOutputTensor -.. code-block:: json +.. code-block:: ts setOutputTensor(idxOrTensor, tensor?): void @@ -199,7 +199,7 @@ Methods - idxOrTensor: number| :doc:`Tensor ` - ``Optional`` - .. code-block:: json + .. code-block:: ts tensor: Tensor @@ -212,7 +212,7 @@ Methods .. rubric:: setTensor -.. code-block:: json +.. code-block:: ts setTensor(name, tensor): void diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst index 0262d3b17efc77..4cf0f72b6f0d62 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputInfo.rst @@ -1,7 +1,7 @@ Interface InputInfo =================== -.. code-block:: json +.. code-block:: ts interface InputInfo { model(): InputModelInfo; @@ -19,7 +19,7 @@ Methods -.. code-block:: json +.. code-block:: ts model(): InputModelInfo @@ -32,7 +32,7 @@ Methods .. rubric:: preprocess -.. code-block:: json +.. code-block:: ts preprocess(): PreProcessSteps @@ -45,7 +45,7 @@ Methods .. rubric:: tensor -.. code-block:: json +.. code-block:: ts tensor(): InputTensorInfo diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst index 2a17dcc7840bf9..8ec81609754743 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputModelInfo.rst @@ -2,7 +2,7 @@ Interface InputModelInfo ======================== -.. code-block:: json +.. code-block:: ts interface InputModelInfo { setLayout(layout): InputModelInfo; @@ -18,7 +18,7 @@ Methods -.. code-block:: json +.. code-block:: ts setLayout(layout): InputModelInfo diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst index 4d3d8e0c0be29b..54f74c7deaaef9 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/InputTensorInfo.rst @@ -2,7 +2,7 @@ Interface InputTensorInfo ========================= -.. code-block:: json +.. code-block:: ts interface InputTensorInfo { setElementType(elementType): InputTensorInfo; @@ -20,7 +20,7 @@ Methods -.. code-block:: json +.. code-block:: ts setElementType(elementType): InputTensorInfo @@ -42,7 +42,7 @@ Methods -.. code-block:: json +.. code-block:: ts setLayout(layout): InputTensorInfo @@ -59,7 +59,7 @@ Methods .. rubric:: setShape -.. code-block:: json +.. code-block:: ts setShape(shape): InputTensorInfo diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst index c7e96a6b4cc2af..de8e253fda0281 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Model.rst @@ -4,7 +4,7 @@ Interface Model .. rubric:: Interface Model -.. code-block:: json +.. code-block:: ts interface Model { inputs: Output[]; @@ -26,7 +26,7 @@ Properties -.. code-block:: json +.. code-block:: ts inputs: Output[] @@ -37,7 +37,7 @@ Properties -.. code-block:: json +.. code-block:: ts outputs: Output[] @@ -52,7 +52,7 @@ Methods .. rubric:: getName -.. code-block:: json +.. code-block:: ts getName(): string @@ -66,7 +66,7 @@ Methods .. rubric:: input -.. code-block:: json +.. code-block:: ts input(nameOrId?): Output @@ -76,7 +76,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts nameOrId: string|number @@ -91,7 +91,7 @@ Methods .. rubric:: output -.. code-block:: json +.. code-block:: ts output(nameOrId?): Output @@ -100,7 +100,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts nameOrId: string|number diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst index 6f7f59ef3b3367..ab9ce353babb38 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Output.rst @@ -2,7 +2,7 @@ Interface Output ================ -.. code-block:: json +.. code-block:: ts interface Output { anyName: string; @@ -23,7 +23,7 @@ Properties -.. code-block:: json +.. code-block:: ts anyName: string @@ -36,7 +36,7 @@ Properties -.. code-block:: json +.. code-block:: ts shape: number[] @@ -51,7 +51,7 @@ Methods .. rubric:: getAnyName -.. code-block:: json +.. code-block:: ts getAnyName(): string @@ -64,7 +64,7 @@ Methods .. rubric:: getPartialShape -.. code-block:: json +.. code-block:: ts getPartialShape(): PartialShape @@ -77,13 +77,13 @@ Methods .. rubric:: getShape -.. code-block:: json +.. code-block:: ts getShape(): number[] **Returns** -.. code-block:: json +.. code-block:: ts number[] @@ -93,13 +93,13 @@ Methods .. rubric:: toString -.. code-block:: json +.. code-block:: ts toString(): string **Returns** -.. code-block:: json +.. code-block:: ts string diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst index 90f5780942b2cc..2bb3a8f189dc5b 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputInfo.rst @@ -1,7 +1,7 @@ Interface OutputInfo ==================== -.. code-block:: json +.. code-block:: ts interfaceOutputInfo {     tensor(): OutputTensorInfo; @@ -18,7 +18,7 @@ Methods .. rubric:: tensor -.. code-block:: json +.. code-block:: ts tensor(): OutputTensorInfo diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst index d1187a0aec068f..97d5534b926839 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/OutputTensorInfo.rst @@ -1,7 +1,7 @@ Interface OutputTensorInfo ========================== -.. code-block:: json +.. code-block:: ts interface OutputTensorInfo { setElementType(elementType): InputTensorInfo; @@ -17,7 +17,7 @@ Methods .. rubric:: setElementType -.. code-block:: json +.. code-block:: ts setElementType(elementType): InputTensorInfo @@ -33,7 +33,7 @@ Methods .. rubric:: setLayout -.. code-block:: json +.. code-block:: ts setLayout(layout): InputTensorInfo diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst index 39446bb3438dff..17fc0da717f7e0 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShape.rst @@ -1,7 +1,7 @@ Interface PartialShape ====================== -.. code-block:: json +.. code-block:: ts interface PartialShape { getDimensions(): Dimension[]; @@ -19,7 +19,7 @@ Methods .. rubric:: getDimensions -.. code-block:: json +.. code-block:: ts getDimensions(): Dimension @@ -32,7 +32,7 @@ Methods .. rubric:: isDynamic -.. code-block:: json +.. code-block:: ts isDynamic(): boolean @@ -46,7 +46,7 @@ Methods -.. code-block:: json +.. code-block:: ts isStatic(): boolean @@ -60,7 +60,7 @@ Methods .. rubric:: toString -.. code-block:: json +.. code-block:: ts toString(): string diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst index 2b1645dc8571bd..884e3651eb12b3 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PartialShapeConstructor.rst @@ -1,7 +1,7 @@ Interface PartialShapeConstructor ================================= -.. code-block:: json +.. code-block:: ts interface PartialShapeConstructor { new PartialShape(shape): PartialShape; @@ -15,7 +15,7 @@ Interface PartialShapeConstructor -.. code-block:: json +.. code-block:: ts new PartialShape(shape): PartialShape diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst index cb1a8f49ae9e3c..d4cc808fa7b48a 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessor.rst @@ -1,7 +1,7 @@ Interface PrePostProcessor ========================== -.. code-block:: json +.. code-block:: ts interface PrePostProcessor { build(): PrePostProcessor; @@ -18,7 +18,7 @@ Methods .. rubric:: build -.. code-block:: json +.. code-block:: ts build(): PrePostProcessor @@ -31,7 +31,7 @@ Methods -.. code-block:: json +.. code-block:: ts input(idxOrTensorName?): InputInfo @@ -40,7 +40,7 @@ Methods - ``Optional`` -.. code-block:: json +.. code-block:: ts idxOrTensorName: string|number @@ -53,7 +53,7 @@ Methods .. rubric:: output -.. code-block:: json +.. code-block:: ts output(idxOrTensorName?): OutputInfo @@ -62,7 +62,7 @@ Methods - ``Optional`` - .. code-block:: json + .. code-block:: ts idxOrTensorName: string|number diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst index 3d7ea4424df5c3..aded5070d56544 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PrePostProcessorConstructor.rst @@ -2,7 +2,7 @@ Interface PrePostProcessorConstructor ===================================== -.. code-block:: json +.. code-block:: ts interface PrePostProcessorConstructor { new PrePostProcessor(model): PrePostProcessor; @@ -14,7 +14,7 @@ Interface PrePostProcessorConstructor .. rubric:: constructor -.. code-block:: json +.. code-block:: ts new PrePostProcessor(model): PrePostProcessor diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst index c519210ea657c4..a808132a307ce9 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/PreProcessSteps.rst @@ -2,7 +2,7 @@ Interface PreProcessSteps ========================= -.. code-block:: json +.. code-block:: ts interface PreProcessSteps { resize(algorithm): PreProcessSteps; @@ -17,7 +17,7 @@ Methods .. rubric:: resize -.. code-block:: json +.. code-block:: ts resize(algorithm): PreProcessSteps diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst index ea04031e8cc30c..91fdf5d007606f 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/Tensor.rst @@ -4,7 +4,7 @@ Interface Tensor .. rubric:: Interface Tensor -.. code-block:: json +.. code-block:: ts interface Tensor { data: number[]; @@ -23,7 +23,7 @@ Properties -.. code-block:: json +.. code-block:: ts data: number[] @@ -38,7 +38,7 @@ Methods .. rubric:: getData -.. code-block:: json +.. code-block:: ts getData(): number[] @@ -52,7 +52,7 @@ Methods .. rubric:: getElementType -.. code-block:: json +.. code-block:: ts getElementType(): element @@ -64,7 +64,7 @@ Methods .. rubric:: getShape -.. code-block:: json +.. code-block:: ts getShape(): number[] diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst index 5bf387b3bdf7bf..652eaea31db503 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/interfaces/TensorConstructor.rst @@ -4,7 +4,7 @@ Interface TensorConstructor .. rubric:: Interface TensorConstructor -.. code-block:: json +.. code-block:: ts interface TensorConstructor { new Tensor(type, shape, tensorData?): Tensor; @@ -17,7 +17,7 @@ Interface TensorConstructor -.. code-block:: json +.. code-block:: ts new Tensor(type, shape, tensorData?): Tensor @@ -27,7 +27,7 @@ Interface TensorConstructor - shape: number[] - ``Optional`` - .. code-block:: json + .. code-block:: ts tensorData: number[]|SupportedTypedArray diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst index 19fefc2922b265..863ae0a242198b 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/Dimension.rst @@ -1,7 +1,7 @@ Type alias Dimension ==================== -.. code-block:: json +.. code-block:: ts Dimension: number|[number,number] diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst index e097f90f83ad88..85655f1d61c152 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/SupportedTypedArray.rst @@ -2,7 +2,7 @@ Type alias SupportedTypedArray ============================== -.. code-block:: json +.. code-block:: ts SupportedTypedArray: Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array diff --git a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst index e83e9a183b41e8..b5babf1cb4859a 100644 --- a/docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst +++ b/docs/sphinx_setup/api/nodejs_api/openvino-node/types/elementTypeString.rst @@ -1,7 +1,7 @@ Type alias elementTypeString ============================ -.. code-block:: json +.. code-block:: ts elementTypeString: "u8" | "u32" | "u16" | "u64" | "i8" | "i64" | "i32" | "i16" | "f64" | "f32" From dec89c01d21b606a06661e6bc7f2336bede82576 Mon Sep 17 00:00:00 2001 From: Sebastian Golebiewski Date: Tue, 12 Mar 2024 16:31:02 +0100 Subject: [PATCH 11/15] [DOCS] Fix face-detection-retail-0004 reference (#23417) Fixing reference to an OMZ model. --- .../openvino-ecosystem/openvino-security-add-on.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst b/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst index 2365f721da1edb..d0966d1749b7a6 100644 --- a/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst +++ b/docs/articles_en/documentation/openvino-ecosystem/openvino-security-add-on.rst @@ -736,7 +736,7 @@ How to Use the OpenVINO™ Security Add-on This section requires interactions between the Model Developer/Independent Software vendor and the User. All roles must complete all applicable :ref:`set up steps ` and :ref:`installation steps ` before beginning this section. -This document uses the :doc:`face-detection-retail-0004 <../../omz_models_model_face_detection_retail_0044>` model as an example. +This document uses the :doc:`face-detection-retail-0004 <../../omz_models_model_face_detection_retail_0004>` model as an example. The following figure describes the interactions between the Model Developer, Independent Software Vendor, and User. From 5d9c59560b240af244f85c1d1f2f0554c8ec2ac5 Mon Sep 17 00:00:00 2001 From: Roman Kazantsev Date: Tue, 12 Mar 2024 21:35:18 +0400 Subject: [PATCH 12/15] [TF FE] Test RaggedTensorToTensor for rowids format and Equal for string tensors (#23410) **Details:** Test RaggedTensorToTensor for rowids format and Equal for string tensors. Needs to be merged after https://github.com/openvinotoolkit/openvino_tokenizers/pull/70 **Tickets:** TBD --------- Signed-off-by: Kazantsev, Roman --- .../tensorflow_tests/test_tf_Equal.py | 47 +++++++++++++++- .../test_tf_RaggedTensorToTensor.py | 56 +++++++++++++++++++ 2 files changed, 102 insertions(+), 1 deletion(-) diff --git a/tests/layer_tests/tensorflow_tests/test_tf_Equal.py b/tests/layer_tests/tensorflow_tests/test_tf_Equal.py index def3d07ad90ab9..b785e4ce440d95 100644 --- a/tests/layer_tests/tensorflow_tests/test_tf_Equal.py +++ b/tests/layer_tests/tensorflow_tests/test_tf_Equal.py @@ -1,14 +1,17 @@ # Copyright (C) 2022 Intel Corporation # SPDX-License-Identifier: Apache-2.0 +import platform + import numpy as np import pytest import tensorflow as tf from common.tf_layer_test_class import CommonTFLayerTest - # Testing operation Equal # Documentation: https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/math/equal +rng = np.random.default_rng() + class TestTFEqual(CommonTFLayerTest): output_type = np.float32 @@ -210,3 +213,45 @@ def test_tf_equal_float64(self, params, ie_device, precision, ir_version, temp_d ie_device, precision, temp_dir=temp_dir, ir_version=ir_version, use_legacy_frontend=use_legacy_frontend, **params) + + +class TestEqualStr(CommonTFLayerTest): + def _prepare_input(self, inputs_info): + assert 'x:0' in inputs_info + assert 'y:0' in inputs_info + x_shape = inputs_info['x:0'] + y_shape = inputs_info['y:0'] + inputs_data = {} + strings_dictionary = ['UPPER<>CASE SENTENCE', 'lower case\n\s sentence', ' UppEr LoweR CAse SENtence \t\n', + ' some sentence', 'another sentence HERE '] + inputs_data['x:0'] = rng.choice(strings_dictionary, x_shape) + inputs_data['y:0'] = rng.choice(strings_dictionary, y_shape) + return inputs_data + + def create_equal_net(self, x_shape, y_shape): + tf.compat.v1.reset_default_graph() + with tf.compat.v1.Session() as sess: + x = tf.compat.v1.placeholder(tf.string, x_shape, 'x') + y = tf.compat.v1.placeholder(tf.string, x_shape, 'y') + tf.raw_ops.Equal(x=x, y=y) + tf.compat.v1.global_variables_initializer() + tf_net = sess.graph_def + + ref_net = None + + return tf_net, ref_net + + @pytest.mark.parametrize('x_shape', [[1], [5]]) + @pytest.mark.parametrize('y_shape', [[1], [5]]) + @pytest.mark.precommit_tf_fe + @pytest.mark.nightly + @pytest.mark.xfail(condition=platform.system() in ('Darwin', 'Linux') and platform.machine() in ['arm', 'armv7l', + 'aarch64', + 'arm64', 'ARM64'], + reason='126314, 132699: Build tokenizers for ARM and MacOS') + def test_equal_str(self, x_shape, y_shape, + ie_device, precision, ir_version, temp_dir, + use_legacy_frontend): + self._test(*self.create_equal_net(x_shape=x_shape, y_shape=y_shape), + ie_device, precision, ir_version, temp_dir=temp_dir, + use_legacy_frontend=use_legacy_frontend) diff --git a/tests/layer_tests/tensorflow_tests/test_tf_RaggedTensorToTensor.py b/tests/layer_tests/tensorflow_tests/test_tf_RaggedTensorToTensor.py index 3888898013563d..2f44ba5d1c9439 100644 --- a/tests/layer_tests/tensorflow_tests/test_tf_RaggedTensorToTensor.py +++ b/tests/layer_tests/tensorflow_tests/test_tf_RaggedTensorToTensor.py @@ -65,3 +65,59 @@ def test_ragged_tensor_to_tensor(self, shape_type, shape_value, values_shape, va row_partition_types=row_partition_types), ie_device, precision, ir_version, temp_dir=temp_dir, use_legacy_frontend=use_legacy_frontend) + + +class TestRaggedTensorToTensorRowIds(CommonTFLayerTest): + def _prepare_input(self, inputs_info): + assert 'values:0' in inputs_info, "Test error: inputs_info must contain `values`" + values_shape = inputs_info['values:0'] + inputs_data = {} + if np.issubdtype(self.values_type, np.floating): + inputs_data['values:0'] = rng.uniform(-5.0, 5.0, values_shape).astype(self.values_type) + elif np.issubdtype(self.values_type, np.signedinteger): + inputs_data['values:0'] = rng.integers(-8, 8, values_shape).astype(self.values_type) + else: + inputs_data['values:0'] = rng.integers(0, 8, values_shape).astype(self.values_type) + return inputs_data + + def create_ragged_tensor_to_tensor_net(self, shape_type, shape_value, values_shape, values_type, default_value, + row_partition_tensors, row_partition_types): + self.values_type = values_type + tf.compat.v1.reset_default_graph() + + # Create the graph and model + with tf.compat.v1.Session() as sess: + values = tf.compat.v1.placeholder(values_type, values_shape, 'values') + shape = tf.constant(shape_value, dtype=shape_type) + default_value = tf.constant(default_value, dtype=values_type) + tf.raw_ops.RaggedTensorToTensor(shape=shape, values=values, default_value=default_value, + row_partition_tensors=row_partition_tensors, + row_partition_types=row_partition_types) + tf.compat.v1.global_variables_initializer() + tf_net = sess.graph_def + + return tf_net, None + + @pytest.mark.parametrize('shape_type', [np.int32, np.int64]) + @pytest.mark.parametrize('shape_value', [[4, 8], [-1, 64], [5, -1], [-1, -1]]) + @pytest.mark.parametrize('values_shape', [[10]]) + @pytest.mark.parametrize('values_type', [np.float32, np.int32, np.int64]) + @pytest.mark.parametrize('default_value', [-1, 0]) + @pytest.mark.parametrize('row_partition_tensors', [[20, [1, 2, 3, 3, 4, 8, 8, 9, 9, 9]]]) + @pytest.mark.parametrize('row_partition_types', [["FIRST_DIM_SIZE", "VALUE_ROWIDS"]]) + @pytest.mark.precommit_tf_fe + @pytest.mark.nightly + @pytest.mark.xfail(condition=platform.system() in ('Darwin', 'Linux') and platform.machine() in ['arm', 'armv7l', + 'aarch64', + 'arm64', 'ARM64'], + reason='126314, 132699: Build tokenizers for ARM and MacOS') + def test_ragged_tensor_to_tensor(self, shape_type, shape_value, values_shape, values_type, default_value, + row_partition_tensors, row_partition_types, + ie_device, precision, ir_version, temp_dir, use_legacy_frontend): + self._test(*self.create_ragged_tensor_to_tensor_net(shape_type=shape_type, shape_value=shape_value, + values_shape=values_shape, values_type=values_type, + default_value=default_value, + row_partition_tensors=row_partition_tensors, + row_partition_types=row_partition_types), + ie_device, precision, ir_version, temp_dir=temp_dir, + use_legacy_frontend=use_legacy_frontend) From 33e821eb25c5f27f32e12d7c194233b6c3b15147 Mon Sep 17 00:00:00 2001 From: Andrzej Kopytko Date: Tue, 12 Mar 2024 17:37:54 +0100 Subject: [PATCH 13/15] DOCS Updated configs to remove canonical from master (#23412) ### Details: - *item1* - *...* ### Tickets: - *ticket-id* --- .../openvino_custom_sphinx_sitemap/__init__.py | 4 ++-- docs/sphinx_setup/conf.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/openvino_custom_sphinx_sitemap/openvino_custom_sphinx_sitemap/__init__.py b/docs/openvino_custom_sphinx_sitemap/openvino_custom_sphinx_sitemap/__init__.py index 98119c02fe02b5..fdbb002e1a9601 100644 --- a/docs/openvino_custom_sphinx_sitemap/openvino_custom_sphinx_sitemap/__init__.py +++ b/docs/openvino_custom_sphinx_sitemap/openvino_custom_sphinx_sitemap/__init__.py @@ -30,10 +30,10 @@ def create_sitemap(app, exception): urlset = app.builder.config.ov_sitemap_urlset meta = app.builder.config.ov_sitemap_meta - site_url = app.builder.config.site_url or app.builder.config.html_baseurl + site_url = app.builder.config.site_url site_url = site_url.rstrip('/') + '/' if not site_url: - print("sphinx-sitemap error: neither html_baseurl nor site_url " + print("sphinx-sitemap error: no site_url" "are set in conf.py. Sitemap not built.") return if (not app.sitemap_links): diff --git a/docs/sphinx_setup/conf.py b/docs/sphinx_setup/conf.py index e863749295553d..ddb70c4d2a672b 100644 --- a/docs/sphinx_setup/conf.py +++ b/docs/sphinx_setup/conf.py @@ -56,7 +56,7 @@ '.md': 'markdown', } -html_baseurl = 'https://docs.openvino.ai/canonical/' +html_baseurl = '' # -- Sitemap configuration --------------------------- From a620688613fdd53f6febcb3fd9dcd2ced44a36e0 Mon Sep 17 00:00:00 2001 From: Tatiana Savina Date: Tue, 12 Mar 2024 17:54:05 +0100 Subject: [PATCH 14/15] [DOCS] Fix llms article format (#23422) ### Details: - *item1* - *...* ### Tickets: - *ticket-id* --- .../learn-openvino/llm_inference_guide.rst | 54 ++++++------------- .../llm_inference_guide/llm-inference-hf.rst | 16 +++--- .../llm-inference-native-ov.rst | 10 ++-- 3 files changed, 28 insertions(+), 52 deletions(-) diff --git a/docs/articles_en/learn-openvino/llm_inference_guide.rst b/docs/articles_en/learn-openvino/llm_inference_guide.rst index 1402134468b012..68b74d5b03d2d7 100644 --- a/docs/articles_en/learn-openvino/llm_inference_guide.rst +++ b/docs/articles_en/learn-openvino/llm_inference_guide.rst @@ -25,40 +25,19 @@ conversion to advanced use cases. The advantages of using OpenVINO for LLM deployment: -* **OpenVINO offers optimized LLM inference**; provides a full C/C++ API, leading to faster - operation than Python-based runtimes; includes a Python API for rapid development, with the - option for further optimization in C++. - -* **Compatible with diverse hardware**, supports CPUs, GPUs, and neural accelerators across ARM - and x86/x64 architectures, integrated Intel® Processor Graphics, discrete Intel® Arc™ A-Series - Graphics, and discrete Intel® Data Center GPU Flex Series; features automated optimization to - maximize performance on target hardware. - -* **Requires fewer dependencies** than frameworks like Hugging Face and PyTorch, resulting in a - smaller binary size and reduced memory footprint, making deployments easier and updates more - manageable. - -* **Provides compression and precision management techniques** such as 8-bit and 4-bit weight - compression, including embedding layers, and storage format reduction. This includes fp16 - precision for non-compressed models and int8/int4 for compressed models, like GPTQ models from - Hugging Face. - -* **Supports a wide range of deep learning models and architectures** including text, image, and - audio generative models like Llama 2, MPT, OPT, Stable Diffusion, Stable Diffusion XL. This - enables the development of multimodal applications, allowing for write-once, deploy-anywhere - capabilities. - -* **Enhances inference capabilities**: fused inference primitives such as Scaled Dot Product - Attention, Rotary Positional Embedding, Group Query Attention, and Mixture of Experts. It also - offers advanced features like in-place KV-cache, dynamic quantization, KV-cache quantization - and encapsulation, dynamic beam size configuration, and speculative sampling. - -* **Provides stateful model optimization**: models from the Hugging Face Transformers are - converted into a stateful form, optimizing inference performance and memory usage in long - running text generation tasks by managing past KV-cache tensors more efficiently internally. - This feature is automatically activated for many supported models, while unsupported ones - remain stateless. Learn more about the - :doc:`Stateful models and State API <../openvino-workflow/running-inference/stateful-models>`. +* **OpenVINO offers optimized LLM inference**; provides a full C/C++ API, leading to faster operation than Python-based runtimes; includes a Python API for rapid development, with the option for further optimization in C++. + +* **Compatible with diverse hardware**, supports CPUs, GPUs, and neural accelerators across ARM and x86/x64 architectures, integrated Intel® Processor Graphics, discrete Intel® Arc™ A-Series Graphics, and discrete Intel® Data Center GPU Flex Series; features automated optimization to maximize performance on target hardware. + +* **Requires fewer dependencies** than frameworks like Hugging Face and PyTorch, resulting in a smaller binary size and reduced memory footprint, making deployments easier and updates more manageable. + +* **Provides compression and precision management techniques** such as 8-bit and 4-bit weight compression, including embedding layers, and storage format reduction. This includes fp16 precision for non-compressed models and int8/int4 for compressed models, like GPTQ models from Hugging Face. + +* **Supports a wide range of deep learning models and architectures** including text, image, and audio generative models like Llama 2, MPT, OPT, Stable Diffusion, Stable Diffusion XL. This enables the development of multimodal applications, allowing for write-once, deploy-anywhere capabilities. + +* **Enhances inference capabilities**: fused inference primitives such as Scaled Dot Product Attention, Rotary Positional Embedding, Group Query Attention, and Mixture of Experts. It also offers advanced features like in-place KV-cache, dynamic quantization, KV-cache quantization and encapsulation, dynamic beam size configuration, and speculative sampling. + +* **Provides stateful model optimization**: models from the Hugging Face Transformers are converted into a stateful form, optimizing inference performance and memory usage in long-running text generation tasks by managing past KV-cache tensors more efficiently internally. This feature is automatically activated for many supported models, while unsupported ones remain stateless. Learn more about the :doc:`Stateful models and State API <../openvino-workflow/running-inference/stateful-models>`. OpenVINO offers two main paths for Generative AI use cases: @@ -69,13 +48,13 @@ OpenVINO offers two main paths for Generative AI use cases: `custom pipeline code `__. In both cases, the OpenVINO runtime is used for inference, and OpenVINO tools are used for -optimization. The main differences are in footprint size, ease of use and customizability. +optimization. The main differences are in footprint size, ease of use, and customizability. The Hugging Face API is easy to learn, provides a simple interface and hides the complexity of model initialization and text generation for a better developer experience. However, it has more dependencies, less customization, and cannot be ported to C/C++. -The Native OpenVINO API requires fewer dependencies, mininmizing the application footprint, and +The Native OpenVINO API requires fewer dependencies, minimizing the application footprint, and enables the use of generative models in C++ applications. However, it requires explicit implementation of the text generation loop, tokenization functions, and scheduler functions used in a typical LLM pipeline. @@ -96,9 +75,6 @@ and export models to the OpenVINO model format for use in native API application The table below summarizes the differences between Hugging Face and the native OpenVINO API approaches. - -The table below summarizes the differences between Hugging Face and the native OpenVINO API approaches: - .. dropdown:: Differences between Hugging Face and the native OpenVINO API .. list-table:: diff --git a/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-hf.rst b/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-hf.rst index ff6ddefdc89534..571108f07dc0e7 100644 --- a/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-hf.rst +++ b/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-hf.rst @@ -1,6 +1,6 @@ .. {#llm_inference} -LLM Inference with Hugging Face and Optimum Intel +Inference with Hugging Face and Optimum Intel ===================================================== The steps below show how to load and infer LLMs from Hugging Face using Optimum Intel. @@ -97,10 +97,10 @@ using NNCF which substantially reduces the model footprint and inference latency model = OVModelForCausalLM.from_pretrained(model_id, export=True, load_in_8bit=True) - # or if model was already converted + # or if the model has been already converted model = OVModelForCausalLM.from_pretrained(model_path, load_in_8bit=True) - # save model after optimization + # save the model after optimization model.save_pretrained(optimized_model_path) @@ -138,19 +138,19 @@ parameters. quantization_config=OVWeightQuantizationConfig(bits=4), ) - # or if model was already converted + # or if the model has been already converted model = OVModelForCausalLM.from_pretrained( model_path, quantization_config=OVWeightQuantizationConfig(bits=4), ) # use custom parameters for weight quantization - mmodel = OVModelForCausalLM.from_pretrained( + model = OVModelForCausalLM.from_pretrained( model_path, quantization_config=OVWeightQuantizationConfig(bits=4, asym=True, ratio=0.8, dataset="ptb"), ) - # save model after optimization + # save the model after optimization model.save_pretrained(optimized_model_path) @@ -227,7 +227,7 @@ includes **Dynamic quantization** of activations of 4/8-bit quantized MatMuls an * **Dynamic quantization** enables quantization of activations of MatMul operations that have 4 or 8-bit quantized weights (see :doc:`LLM Weight Compression <../../openvino-workflow/model-optimization-guide/weight-compression>`). It improves inference latency and throughput of LLMs, though it may cause insignificant deviation in generation accuracy. Quantization is performed in a - group-wise manner, with configurable group size. It means that values in a group share quantization parameters. Larger group sizes lead to faster inference but lower accuracy. Recommended group size values are: ``32``, ``64``, or ``128``. To enable Dynamic quantization, use the corresponding + group-wise manner, with configurable group size. It means that values in a group share quantization parameters. Larger group sizes lead to faster inference but lower accuracy. Recommended group size values are ``32``, ``64``, or ``128``. To enable Dynamic quantization, use the corresponding inference property as follows: @@ -286,4 +286,4 @@ Additional Resources * `Generation with LLMs `__ * `Pipeline class `__ * `GenAI Pipeline Repository `__ -* `OpenVINO Tokenizers `__ \ No newline at end of file +* `OpenVINO Tokenizers `__ \ No newline at end of file diff --git a/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-native-ov.rst b/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-native-ov.rst index e6843acdcdd937..64b5c213221d5a 100644 --- a/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-native-ov.rst +++ b/docs/articles_en/learn-openvino/llm_inference_guide/llm-inference-native-ov.rst @@ -5,8 +5,8 @@ Inference with Native OpenVINO To run Generative AI models using native OpenVINO APIs you need to follow regular **Convert -> Optimize -> Deploy** path with a few simplifications. -To convert model from Hugging Face you can use Optimum-Intel export feature that allows to export model in OpenVINO format without invoking conversion API and tools directly, as it is shown above. -In this case, the conversion process is a bit more simplified. You can still use a regular conversion path if model comes from outside of Hugging Face ecosystem, i.e., in source framework format (PyTorch, etc.) +To convert a model from Hugging Face, you can use Optimum-Intel export feature that allows you to export model in the OpenVINO format without invoking conversion API and tools directly. +In this case, the conversion process is a bit more simplified. You can still use a regular conversion path if the model comes from outside of Hugging Face ecosystem, i.e., in source framework format (PyTorch, etc.) Model optimization can be performed within Hugging Face or directly using NNCF as described in :doc:`Weight Compression <../../openvino-workflow/model-optimization-guide/weight-compression>`. @@ -17,7 +17,7 @@ Model optimization can be performed within Hugging Face or directly using NNCF a Inference code that uses native API cannot benefit from Hugging Face pipelines. You need to write your custom code or take it from the available examples. Below are some examples of popular Generative AI scenarios: * In case of LLMs for text generation, you need to handle tokenization, inference and token selection loop, and de-tokenization. If token selection involves beam search, it also needs to be written. -* For image generation models, you need to make a pipeline that includes several model inferences: inference for source (e.g., text) encoder models, inference loop for diffusion process and inference for decoding part. Scheduler code is also required. +* For image generation models, you need to make a pipeline that includes several model inferences: inference for source (e.g., text) encoder models, inference loop for diffusion process and inference for the decoding part. Scheduler code is also required. To write such pipelines, you can follow the examples provided as part of OpenVINO: @@ -67,7 +67,7 @@ Convert Hugging Face tokenizer and model to OpenVINO IR format **Convert Tokenizer** -`OpenVINO Tokenizers `__ +`OpenVINO Tokenizers `__ come equipped with a CLI tool that facilitates the conversion of tokenizers from either the Hugging Face Hub or those saved locally to the OpenVINO IR format: @@ -176,7 +176,7 @@ Additional Resources * `Text generation C++ samples that support most popular models like LLaMA 2 `__ * `OpenVINO GenAI Repo `__ -* `OpenVINO Tokenizers `__ +* `OpenVINO Tokenizers `__ * `Neural Network Compression Framework `__ * :doc:`Stateful Models Low-Level Details <../../openvino-workflow/running-inference/stateful-models>` * :doc:`Working with Textual Data <../../openvino-workflow/running-inference/string-tensors>` From 461a1382cbb4850276aff7b3c7f9ee6eee2d8b90 Mon Sep 17 00:00:00 2001 From: Chen Peter Date: Wed, 13 Mar 2024 01:35:51 +0800 Subject: [PATCH 15/15] CAPI requires GPU plugin (#23414) ### Details: - *Add GPU build for CAPI RemoteContext tests* ### Tickets: - *CVS-129332* Signed-off-by: Peter Chen --- .github/components.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/components.yml b/.github/components.yml index f929f8cdf00b07..b5f6143e22aae5 100644 --- a/.github/components.yml +++ b/.github/components.yml @@ -149,6 +149,7 @@ PyTorch_FE: C_API: build: - CPU + - GPU - HETERO - AUTO_BATCH - AUTO