From 1cc499429a964274d026b69b922968176ea8a981 Mon Sep 17 00:00:00 2001 From: Przemyslaw Wysocki Date: Thu, 3 Nov 2022 19:56:57 +0100 Subject: [PATCH] [PyOV] Upgrade ONNX to 1.12.0 (#12847) * Refactor tests for onnx1.12 * Fix ONNX compatibility and numpy warnings * Upgrade ONNX to 1.12 in cpp * Skip unsupported ops * Revert "Fix ONNX compatibility and numpy warnings" This reverts commit cd8a0e6b8e68b1f5653a7204f6c6940ce1c38a47. * Small changes * Remove unnecessary changes * Bump Python version in github workflows * Fix flake error * Another flake error * Even more flake errors * Xfail more tests * Fix mypy errors * Change onnx version in tests * Bump ONNX in MO * Fix onnx utils in comp * Minor changes * Import pathlib * Add xfails to compatibility tests * Skip segfaulting tests * Fix onnx nametuple * Fix flake * Try to fix py3.6 onnx * Fix model importer and reqs * Add __test__ * Bump OMZ commit * checkout omz * Revert omz * Bump omz * Bump omz * Revert omz * Bump omz * Change pychecks python version * Add LayerNorm to expanded ONNX functions * Apply clang * Move LayerNorm tests to skip_segfault * Refactoring * Minor changes * Minor changes * Relax MO reqs --- src/bindings/python/requirements_test.txt | 2 +- src/bindings/python/tests/__init__.py | 5 ++ .../python/tests/test_onnx/test_backend.py | 78 ++++++++++++---- .../tests/test_onnx/utils/model_importer.py | 7 +- .../python/tests_compatibility/__init__.py | 6 ++ .../test_onnx/test_backend.py | 88 +++++++++++++++---- .../test_onnx/utils/model_importer.py | 6 +- src/frontends/onnx/frontend/CMakeLists.txt | 2 +- .../onnx/frontend/src/core/transform.hpp | 9 +- src/frontends/onnx/tests/requirements.txt | 2 +- thirdparty/onnx/onnx | 2 +- tools/mo/requirements.txt | 2 +- tools/mo/requirements_onnx.txt | 2 +- 13 files changed, 166 insertions(+), 45 deletions(-) diff --git a/src/bindings/python/requirements_test.txt b/src/bindings/python/requirements_test.txt index eb193015658..d43922864a5 100644 --- a/src/bindings/python/requirements_test.txt +++ b/src/bindings/python/requirements_test.txt @@ -22,7 +22,7 @@ flake8_commas flake8_pep3101 flake8_quotes mypy -onnx<1.12.0 +onnx==1.12.0 Pep8-naming pydocstyle pytest-forked; platform_system != "Windows" diff --git a/src/bindings/python/tests/__init__.py b/src/bindings/python/tests/__init__.py index 96d8e5e13f5..a24220f83b3 100644 --- a/src/bindings/python/tests/__init__.py +++ b/src/bindings/python/tests/__init__.py @@ -47,6 +47,9 @@ xfail_issue_33651 = xfail_test(reason="RuntimeError: OV does not support the fol "TfIdfVectorizer") xfail_issue_33581 = xfail_test(reason="RuntimeError: OV does not support the following ONNX operations: " "GatherElements") +xfail_issue_90649 = xfail_test(reason="RuntimeError: OV does not support the following ONNX operations:" + "BlackmanWindow, DFT, HammingWindow, HannWindow, LayerNormalization, " + "MelWeightMatrix, SequenceMap, STFT") xfail_issue_35923 = xfail_test(reason="RuntimeError: PReLU without weights is not supported") xfail_issue_35927 = xfail_test(reason="RuntimeError: B has zero dimension that is not allowable") xfail_issue_36486 = xfail_test(reason="RuntimeError: HardSigmoid operation should be converted " @@ -133,4 +136,6 @@ xfail_issue_82039 = xfail_test(reason="Unsupported data type Optional, RuntimeEr "CPU plugin: Input image format UNSPECIFIED is not supported yet...") xfail_issue_86911 = xfail_test(reason="LSTM_Seq_len_unpacked - AssertionError: zoo models results mismatch") +xfail_issue_91151 = xfail_test(reason="RuntimeError: model input (shape={3,4}) and blob (shape=(1)) are incompatible") +xfail_issue_91152 = xfail_test(reason="RuntimeError: Error validating node ''") xfail_issue_91490 = xfail_test(reason="y has zero dimension which is not allowed") diff --git a/src/bindings/python/tests/test_onnx/test_backend.py b/src/bindings/python/tests/test_onnx/test_backend.py index a2f22a1e000..1ff7436fbac 100644 --- a/src/bindings/python/tests/test_onnx/test_backend.py +++ b/src/bindings/python/tests/test_onnx/test_backend.py @@ -47,6 +47,9 @@ from tests import ( skip_segfault, xfail_issue_82038, xfail_issue_82039, + xfail_issue_90649, + xfail_issue_91151, + xfail_issue_91152, xfail_issue_91490, ) from tests.test_onnx.utils.onnx_backend import OpenVinoTestBackend @@ -152,6 +155,12 @@ tests_expected_to_fail = [ "OnnxBackendNodeModelTest.test_identity_sequence_cpu", "OnnxBackendNodeModelTest.test_if_seq_cpu", "OnnxBackendNodeModelTest.test_if_opt_cpu", # Optional, SequenceConstruct + "OnnxBackendNodeModelTest.test_sequence_map_add_1_sequence_1_tensor_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_add_2_sequences_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_extract_shapes_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_1_tensor_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_2_sequences_expanded_cpu", ), ( xfail_issue_38701, @@ -283,7 +292,6 @@ tests_expected_to_fail = [ ( xfail_issue_63039, "OnnxBackendNodeModelTest.test_div_uint8_cpu", - "OnnxBackendNodeModelTest.test_mul_uint8_cpu", "OnnxBackendNodeModelTest.test_sub_uint8_cpu", ), ( @@ -338,27 +346,32 @@ tests_expected_to_fail = [ skip_segfault, "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_mean_weight_cpu", # ticket: 81976 "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_mean_weight_log_prob_cpu", # ticket: 81976 + "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_cpu", # ticket: 81976 + "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_cpu", # ticket: 81976 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis0_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis_negative_1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis_negative_2_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis0_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis1_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis2_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis_negative_1_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis_negative_2_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis_negative_3_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis0_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis2_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis3_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_2_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_3_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_4_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_default_axis_cpu", # ticket: 90649 ), ( xfail_issue_81976, # SoftmaxCrossEntropyLoss operator - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3_none_no_weight_negative_ii_cpu", - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_cpu", - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_cpu", "OnnxBackendNodeModelTest.test_sce_mean_3d_cpu", "OnnxBackendNodeModelTest.test_sce_mean_3d_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_3d_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_3d_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_4d_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_4d_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_none_cpu", - "OnnxBackendNodeModelTest.test_sce_none_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_sum_cpu", - "OnnxBackendNodeModelTest.test_sce_sum_log_prob_cpu", ), ( xfail_issue_82038, @@ -370,6 +383,37 @@ tests_expected_to_fail = [ xfail_issue_82039, "OnnxBackendNodeModelTest.test_identity_opt_cpu", ), + ( + xfail_issue_90649, + "OnnxBackendNodeModelTest.test_blackmanwindow_cpu", + "OnnxBackendNodeModelTest.test_blackmanwindow_symmetric_cpu", + "OnnxBackendNodeModelTest.test_dft_axis_cpu", + "OnnxBackendNodeModelTest.test_dft_cpu", + "OnnxBackendNodeModelTest.test_dft_inverse_cpu", + "OnnxBackendNodeModelTest.test_hammingwindow_cpu", + "OnnxBackendNodeModelTest.test_hammingwindow_symmetric_cpu", + "OnnxBackendNodeModelTest.test_hannwindow_cpu", + "OnnxBackendNodeModelTest.test_hannwindow_symmetric_cpu", + "OnnxBackendNodeModelTest.test_melweightmatrix_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_add_1_sequence_1_tensor_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_add_2_sequences_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_extract_shapes_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_1_tensor_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_2_sequences_cpu", + "OnnxBackendNodeModelTest.test_stft_cpu", + "OnnxBackendNodeModelTest.test_stft_with_window_cpu", + ), + ( + xfail_issue_91151, + "OnnxBackendNodeModelTest.test_castlike_BFLOAT16_to_FLOAT_cpu", + "OnnxBackendNodeModelTest.test_castlike_FLOAT_to_BFLOAT16_cpu", + ), + ( + xfail_issue_91152, + "OnnxBackendNodeModelTest.test_quantizelinear_cpu", + "OnnxBackendNodeModelTest.test_dequantizelinear_cpu", + ), ] for test_group in tests_expected_to_fail: diff --git a/src/bindings/python/tests/test_onnx/utils/model_importer.py b/src/bindings/python/tests/test_onnx/utils/model_importer.py index 2b125768690..b3d572e7592 100644 --- a/src/bindings/python/tests/test_onnx/utils/model_importer.py +++ b/src/bindings/python/tests/test_onnx/utils/model_importer.py @@ -6,6 +6,7 @@ import numpy as np import onnx import onnx.backend.test import unittest +import dataclasses from collections import defaultdict, namedtuple from onnx import numpy_helper, NodeProto, ModelProto @@ -28,9 +29,10 @@ from typing import ( Sequence, ) - # add post-processing function as part of test data -ExtOnnxTestCase = namedtuple("TestCaseExt", OnnxTestCase._fields + ("post_processing",)) +OnnxTestCase_fields = [field.name for field in dataclasses.fields(OnnxTestCase)] +ExtOnnxTestCase = dataclasses.make_dataclass(cls_name="TestCaseExt", + fields=[*OnnxTestCase_fields, "post_processing"]) class ModelImportRunner(onnx.backend.test.BackendTest): @@ -67,6 +69,7 @@ class ModelImportRunner(onnx.backend.test.BackendTest): kind="OnnxBackendRealModelTest", rtol=model.get("rtol", 0.001), atol=model.get("atol", 1e-07), + __test__=True, post_processing=model.get("post_processing", None), ) self._add_model_import_test(test_case) diff --git a/src/bindings/python/tests_compatibility/__init__.py b/src/bindings/python/tests_compatibility/__init__.py index c81d24410b9..6926b44b082 100644 --- a/src/bindings/python/tests_compatibility/__init__.py +++ b/src/bindings/python/tests_compatibility/__init__.py @@ -24,6 +24,7 @@ def xfail_test(reason="Mark the test as expected to fail", strict=True): skip_segfault = pytest.mark.skip(reason="Segmentation fault error") xfail_accuracy = xfail_test(reason="Accuracy") +xfail_unsupported_by_legacy_api = xfail_test(reason="RuntimeError: This feature is not supported via legacy API.") xfail_issue_69444 = xfail_test(reason="ONNX Resize - AssertionError: Mismatched elements.") xfail_issue_67415 = xfail_test(reason="RuntimeError: Unsupported data type for when filling blob!") xfail_issue_33488 = xfail_test(reason="RuntimeError: nGraph does not support the following ONNX operations: " @@ -141,6 +142,11 @@ xfail_issue_82038 = xfail_test(reason="ScatterElements, ScatterND, AssertionErro xfail_issue_82039 = xfail_test(reason="Unsupported data type Optional, RuntimeError: [ NOT_IMPLEMENTED ] " "CPU plugin: Input image format UNSPECIFIED is not supported yet...") skip_issue_86384 = pytest.mark.skip(reason="If op compatibility tests failing only when triggering whole test suite") +xfail_issue_90649 = xfail_test(reason="RuntimeError: OV does not support the following ONNX operations:" + "BlackmanWindow, DFT, HammingWindow, HannWindow, LayerNormalization, " + "MelWeightMatrix, SequenceMap, STFT") +xfail_issue_91151 = xfail_test(reason="RuntimeError: model input (shape={3,4}) and blob (shape=(1)) are incompatible") +xfail_issue_91152 = xfail_test(reason="RuntimeError: Error validating node ''") xfail_issue_91490 = xfail_test(reason="y has zero dimension which is not allowed") skip_dynamic_model = pytest.mark.skip(reason="CPU plug-in can't load a model with dynamic output shapes via legacy API") diff --git a/src/bindings/python/tests_compatibility/test_onnx/test_backend.py b/src/bindings/python/tests_compatibility/test_onnx/test_backend.py index 643e5f52145..49cea0aa315 100644 --- a/src/bindings/python/tests_compatibility/test_onnx/test_backend.py +++ b/src/bindings/python/tests_compatibility/test_onnx/test_backend.py @@ -7,6 +7,7 @@ import onnx.backend.test from tests_compatibility import ( BACKEND_NAME, skip_rng_tests, + xfail_unsupported_by_legacy_api, xfail_issue_33488, xfail_issue_33581, xfail_issue_33589, @@ -47,6 +48,9 @@ from tests_compatibility import ( skip_segfault, xfail_issue_82038, xfail_issue_82039, + xfail_issue_90649, + xfail_issue_91151, + xfail_issue_91152, xfail_issue_91490, skip_dynamic_model, ) @@ -181,6 +185,12 @@ tests_expected_to_fail = [ "OnnxBackendNodeModelTest.test_unique_sorted_with_axis_cpu", "OnnxBackendNodeModelTest.test_unique_sorted_with_axis_3d_cpu", "OnnxBackendNodeModelTest.test_unique_sorted_without_axis_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_add_1_sequence_1_tensor_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_add_2_sequences_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_extract_shapes_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_1_tensor_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_expanded_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_2_sequences_expanded_cpu", ), ( xfail_issue_33651, @@ -283,7 +293,6 @@ tests_expected_to_fail = [ ( xfail_issue_63039, "OnnxBackendNodeModelTest.test_div_uint8_cpu", - "OnnxBackendNodeModelTest.test_mul_uint8_cpu", "OnnxBackendNodeModelTest.test_sub_uint8_cpu", ), ( @@ -425,27 +434,32 @@ tests_expected_to_fail = [ skip_segfault, "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_mean_weight_cpu", # ticket: 81976 "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_mean_weight_log_prob_cpu", # ticket: 81976 + "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_cpu", # ticket: 81976 + "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_cpu", # ticket: 81976 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis0_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis_negative_1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_2d_axis_negative_2_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis0_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis1_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis2_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis_negative_1_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis_negative_2_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_3d_axis_negative_3_epsilon_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis0_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis2_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis3_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_1_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_2_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_3_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_4d_axis_negative_4_cpu", # ticket: 90649 + "OnnxBackendNodeModelTest.test_layer_normalization_default_axis_cpu", # ticket: 90649 ), ( xfail_issue_81976, # SoftmaxCrossEntropyLoss operator - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3_none_no_weight_negative_ii_cpu", - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3_none_no_weight_negative_ii_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_cpu", - "OnnxBackendNodeModelTest.test_sce_NCd1d2d3d4d5_none_no_weight_log_prob_cpu", "OnnxBackendNodeModelTest.test_sce_mean_3d_cpu", "OnnxBackendNodeModelTest.test_sce_mean_3d_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_3d_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_3d_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_4d_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_4d_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_cpu", - "OnnxBackendNodeModelTest.test_sce_mean_no_weight_ii_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_none_cpu", - "OnnxBackendNodeModelTest.test_sce_none_log_prob_cpu", - "OnnxBackendNodeModelTest.test_sce_sum_cpu", - "OnnxBackendNodeModelTest.test_sce_sum_log_prob_cpu", ), ( xfail_issue_82038, @@ -457,6 +471,46 @@ tests_expected_to_fail = [ xfail_issue_82039, "OnnxBackendNodeModelTest.test_identity_opt_cpu", ), + ( + xfail_issue_90649, + "OnnxBackendNodeModelTest.test_blackmanwindow_cpu", + "OnnxBackendNodeModelTest.test_blackmanwindow_symmetric_cpu", + "OnnxBackendNodeModelTest.test_dft_axis_cpu", + "OnnxBackendNodeModelTest.test_dft_cpu", + "OnnxBackendNodeModelTest.test_dft_inverse_cpu", + "OnnxBackendNodeModelTest.test_hammingwindow_cpu", + "OnnxBackendNodeModelTest.test_hammingwindow_symmetric_cpu", + "OnnxBackendNodeModelTest.test_hannwindow_cpu", + "OnnxBackendNodeModelTest.test_hannwindow_symmetric_cpu", + "OnnxBackendNodeModelTest.test_melweightmatrix_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_add_1_sequence_1_tensor_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_add_2_sequences_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_extract_shapes_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_1_tensor_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_1_sequence_cpu", + "OnnxBackendNodeModelTest.test_sequence_map_identity_2_sequences_cpu", + "OnnxBackendNodeModelTest.test_stft_cpu", + "OnnxBackendNodeModelTest.test_stft_with_window_cpu", + ), + ( + xfail_issue_91151, + "OnnxBackendNodeModelTest.test_castlike_BFLOAT16_to_FLOAT_cpu", + "OnnxBackendNodeModelTest.test_castlike_FLOAT_to_BFLOAT16_cpu", + ), + ( + xfail_issue_91152, + "OnnxBackendNodeModelTest.test_quantizelinear_cpu", + "OnnxBackendNodeModelTest.test_dequantizelinear_cpu", + ), + ( + xfail_unsupported_by_legacy_api, + "OnnxBackendNodeModelTest.test_blackmanwindow_expanded_cpu", + "OnnxBackendNodeModelTest.test_blackmanwindow_symmetric_expanded_cpu", + "OnnxBackendNodeModelTest.test_hammingwindow_expanded_cpu", + "OnnxBackendNodeModelTest.test_hammingwindow_symmetric_expanded_cpu", + "OnnxBackendNodeModelTest.test_hannwindow_expanded_cpu", + "OnnxBackendNodeModelTest.test_hannwindow_symmetric_expanded_cpu", + ) ] for test_group in tests_expected_to_fail: diff --git a/src/bindings/python/tests_compatibility/test_onnx/utils/model_importer.py b/src/bindings/python/tests_compatibility/test_onnx/utils/model_importer.py index adc817ef2f7..eea7cbb750b 100644 --- a/src/bindings/python/tests_compatibility/test_onnx/utils/model_importer.py +++ b/src/bindings/python/tests_compatibility/test_onnx/utils/model_importer.py @@ -5,6 +5,7 @@ import numpy as np import onnx import onnx.backend.test import unittest +import dataclasses from collections import defaultdict, namedtuple from onnx import numpy_helper, NodeProto, ModelProto @@ -17,7 +18,9 @@ from typing import Any, Dict, List, Optional, Pattern, Set, Text, Type, Union, C # add post-processing function as part of test data -ExtOnnxTestCase = namedtuple("TestCaseExt", OnnxTestCase._fields + ("post_processing",)) +OnnxTestCase_fields = [field.name for field in dataclasses.fields(OnnxTestCase)] +ExtOnnxTestCase = dataclasses.make_dataclass(cls_name="TestCaseExt", + fields=[*OnnxTestCase_fields, "post_processing"]) class ModelImportRunner(onnx.backend.test.BackendTest): @@ -53,6 +56,7 @@ class ModelImportRunner(onnx.backend.test.BackendTest): kind="OnnxBackendRealModelTest", rtol=model.get("rtol", 0.001), atol=model.get("atol", 1e-07), + __test__=True, post_processing=model.get("post_processing", None) ) self._add_model_import_test(test_case) diff --git a/src/frontends/onnx/frontend/CMakeLists.txt b/src/frontends/onnx/frontend/CMakeLists.txt index 7bc1cd769b4..e365c503f76 100644 --- a/src/frontends/onnx/frontend/CMakeLists.txt +++ b/src/frontends/onnx/frontend/CMakeLists.txt @@ -15,7 +15,7 @@ ov_add_frontend(NAME onnx FILEDESCRIPTION "FrontEnd to load and convert ONNX file format" LINK_LIBRARIES ngraph::builder openvino::util onnx_common openvino::runtime::dev) -set(ONNX_OPSET_VERSION 16 CACHE INTERNAL "Supported version of ONNX operator set") +set(ONNX_OPSET_VERSION 17 CACHE INTERNAL "Supported version of ONNX operator set") target_compile_definitions(${TARGET_NAME} PRIVATE ONNX_OPSET_VERSION=${ONNX_OPSET_VERSION}) ov_ncc_naming_style(FOR_TARGET ${TARGET_NAME} diff --git a/src/frontends/onnx/frontend/src/core/transform.hpp b/src/frontends/onnx/frontend/src/core/transform.hpp index 90f886686d5..7b4f5d077a0 100644 --- a/src/frontends/onnx/frontend/src/core/transform.hpp +++ b/src/frontends/onnx/frontend/src/core/transform.hpp @@ -10,8 +10,13 @@ namespace ngraph { namespace onnx_import { namespace transform { -static const std::vector onnx_functions_to_expand = - {"Bernoulli", "Celu", "GreaterOrEqual", "LessOrEqual", "NegativeLogLikelihoodLoss", "SoftmaxCrossEntropyLoss"}; +static const std::vector onnx_functions_to_expand = {"Bernoulli", + "Celu", + "GreaterOrEqual", + "LessOrEqual", + "NegativeLogLikelihoodLoss", + "SoftmaxCrossEntropyLoss", + "LayerNormalization"}; /// \brief Replace nodes with expanded body of ONNX functions /// diff --git a/src/frontends/onnx/tests/requirements.txt b/src/frontends/onnx/tests/requirements.txt index 6c20cb76862..6216064a61c 100644 --- a/src/frontends/onnx/tests/requirements.txt +++ b/src/frontends/onnx/tests/requirements.txt @@ -1,4 +1,4 @@ # ONNX - generate test models docopt~=0.6.2 -onnx~=1.11.0 +onnx==1.12.0 protobuf>=3.18.1,<4.0.0 \ No newline at end of file diff --git a/thirdparty/onnx/onnx b/thirdparty/onnx/onnx index 96046b8ccfb..f7ee1ac60d0 160000 --- a/thirdparty/onnx/onnx +++ b/thirdparty/onnx/onnx @@ -1 +1 @@ -Subproject commit 96046b8ccfb8e6fa82f6b2b34b3d56add2e8849c +Subproject commit f7ee1ac60d06abe8e26c9b6bbe1e3db5286b614b diff --git a/tools/mo/requirements.txt b/tools/mo/requirements.txt index de4e960b97e..e8a6fbb8a6e 100644 --- a/tools/mo/requirements.txt +++ b/tools/mo/requirements.txt @@ -5,7 +5,7 @@ mxnet~=1.7.0.post2; sys_platform != 'win32' networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" protobuf>=3.18.1,<4.0.0 -onnx>=1.8.1,<1.12 +onnx>=1.8.1,<=1.12 defusedxml>=0.7.1 urllib3>=1.26.4 requests>=2.25.1 diff --git a/tools/mo/requirements_onnx.txt b/tools/mo/requirements_onnx.txt index 6cd06f42828..4c19b6cf111 100644 --- a/tools/mo/requirements_onnx.txt +++ b/tools/mo/requirements_onnx.txt @@ -1,4 +1,4 @@ -onnx>=1.8.1,<1.12 +onnx>=1.8.1,<=1.12 networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" numpy>=1.16.6,<=1.23.1