From e0cef714d257971e56547fc9f961a477cee98bee Mon Sep 17 00:00:00 2001 From: Roman Kazantsev Date: Wed, 3 Aug 2022 15:18:41 +0300 Subject: [PATCH] [MO, POT] Top up upper bounds for TensorFlow and NumPy modules in all requirement files (#12191) * [MO] Relax MO upper-bound requirements for TensorFlow and NumPy Signed-off-by: Kazantsev, Roman * Just debug numpy version Signed-off-by: Kazantsev, Roman * Pin upper-bounds for NumPy and TensorFlow modules in all reqs files Signed-off-by: Kazantsev, Roman * Update submodule dependency for open_model_zoo Signed-off-by: Kazantsev, Roman * Install numpy module first Signed-off-by: Kazantsev, Roman * Update NumPy version in POT setup.py Signed-off-by: Kazantsev, Roman * Extend telemetry tests with a set of possible solutions for events Signed-off-by: Kazantsev, Roman * Fix build issue Signed-off-by: Kazantsev, Roman * Update NumPy module version for layer tests Signed-off-by: Kazantsev, Roman --- samples/python/requirements.txt | 2 +- src/bindings/python/requirements.txt | 2 +- .../compatibility/openvino/requirements.txt | 2 +- src/core/tests/frontend/onnx/telemetry.cpp | 4 ++-- src/core/tests/frontend/paddle/telemetry.cpp | 8 +++---- src/frontends/tensorflow/tests/telemetry.cpp | 21 ++++++++++++----- .../frontend/shared/include/telemetry.hpp | 2 +- .../tests/frontend/shared/src/telemetry.cpp | 23 +++++++++++++++---- tests/layer_tests/requirements.txt | 3 +-- tools/benchmark_tool/requirements.txt | 2 +- tools/cross_check_tool/requirements.txt | 2 +- tools/mo/requirements.txt | 4 ++-- tools/mo/requirements_caffe.txt | 2 +- tools/mo/requirements_kaldi.txt | 2 +- tools/mo/requirements_mxnet.txt | 2 +- tools/mo/requirements_onnx.txt | 2 +- tools/mo/requirements_tf.txt | 4 ++-- tools/mo/requirements_tf2.txt | 5 ++-- tools/pot/setup.py | 2 +- 19 files changed, 58 insertions(+), 36 deletions(-) diff --git a/samples/python/requirements.txt b/samples/python/requirements.txt index f5af69c4e6e..bf0709cb0ce 100644 --- a/samples/python/requirements.txt +++ b/samples/python/requirements.txt @@ -1,2 +1,2 @@ opencv-python==4.5.* -numpy>=1.16.6,<1.20 +numpy>=1.16.6,<=1.23.1 diff --git a/src/bindings/python/requirements.txt b/src/bindings/python/requirements.txt index 63012dd1739..3f5a2c048d2 100644 --- a/src/bindings/python/requirements.txt +++ b/src/bindings/python/requirements.txt @@ -1 +1 @@ -numpy>=1.16.6,<1.20 +numpy>=1.16.6,<=1.23.1 diff --git a/src/bindings/python/src/compatibility/openvino/requirements.txt b/src/bindings/python/src/compatibility/openvino/requirements.txt index 9255207f17d..73e3e25cee9 100644 --- a/src/bindings/python/src/compatibility/openvino/requirements.txt +++ b/src/bindings/python/src/compatibility/openvino/requirements.txt @@ -1 +1 @@ -numpy>=1.16.6,<1.20 \ No newline at end of file +numpy>=1.16.6,<=1.23.1 \ No newline at end of file diff --git a/src/core/tests/frontend/onnx/telemetry.cpp b/src/core/tests/frontend/onnx/telemetry.cpp index 5dc85252d86..e8d3c7a4540 100644 --- a/src/core/tests/frontend/onnx/telemetry.cpp +++ b/src/core/tests/frontend/onnx/telemetry.cpp @@ -15,11 +15,11 @@ static TelemetryFEParam getTestData() { res.m_frontEndName = ONNX_FE; res.m_modelsPath = std::string(TEST_ONNX_MODELS_DIRNAME); res.m_modelName = "controlflow/loop_2d_add.onnx"; - res.m_expected_events = { + res.m_expected_events = {{ std::make_tuple("mo", "op_count", "onnx_Loop", 1), std::make_tuple("mo", "op_count", "onnx_Add", 1), std::make_tuple("mo", "op_count", "onnx_Identity", 2), - }; + }}; return res; } diff --git a/src/core/tests/frontend/paddle/telemetry.cpp b/src/core/tests/frontend/paddle/telemetry.cpp index 6715cf698b5..c984e79a0d6 100644 --- a/src/core/tests/frontend/paddle/telemetry.cpp +++ b/src/core/tests/frontend/paddle/telemetry.cpp @@ -15,10 +15,10 @@ static TelemetryFEParam getTestData() { res.m_frontEndName = PADDLE_FE; res.m_modelsPath = std::string(TEST_PADDLE_MODELS_DIRNAME); res.m_modelName = "relu/relu.pdmodel"; - res.m_expected_events = {std::make_tuple("mo", "op_count", "paddle_feed", 1), - std::make_tuple("mo", "op_count", "paddle_fetch", 1), - std::make_tuple("mo", "op_count", "paddle_relu", 1), - std::make_tuple("mo", "op_count", "paddle_scale", 1)}; + res.m_expected_events = {{std::make_tuple("mo", "op_count", "paddle_feed", 1), + std::make_tuple("mo", "op_count", "paddle_fetch", 1), + std::make_tuple("mo", "op_count", "paddle_relu", 1), + std::make_tuple("mo", "op_count", "paddle_scale", 1)}}; return res; } diff --git a/src/frontends/tensorflow/tests/telemetry.cpp b/src/frontends/tensorflow/tests/telemetry.cpp index d9060b73946..111545a3955 100644 --- a/src/frontends/tensorflow/tests/telemetry.cpp +++ b/src/frontends/tensorflow/tests/telemetry.cpp @@ -16,12 +16,21 @@ static TelemetryFEParam getTestData() { res.m_modelsPath = std::string(TEST_TENSORFLOW_MODELS_DIRNAME); res.m_modelName = "2in_2out/2in_2out.pb"; - res.m_expected_events = {std::make_tuple("mo", "op_count", "tf_Add", 2), - std::make_tuple("mo", "op_count", "tf_Const", 2), - std::make_tuple("mo", "op_count", "tf_Conv2D", 2), - std::make_tuple("mo", "op_count", "tf_NoOp", 1), - std::make_tuple("mo", "op_count", "tf_Placeholder", 2), - std::make_tuple("mo", "op_count", "tf_Relu", 4)}; + res.m_expected_events = {// Expected events on old TensorFlow environment + {std::make_tuple("mo", "op_count", "tf_Add", 2), + std::make_tuple("mo", "op_count", "tf_Const", 2), + std::make_tuple("mo", "op_count", "tf_Conv2D", 2), + std::make_tuple("mo", "op_count", "tf_NoOp", 1), + std::make_tuple("mo", "op_count", "tf_Placeholder", 2), + std::make_tuple("mo", "op_count", "tf_Relu", 4)}, + // Expected events on new TensorFlow environment 2.9 + {std::make_tuple("mo", "op_count", "tf_AddV2", 2), + std::make_tuple("mo", "op_count", "tf_Const", 2), + std::make_tuple("mo", "op_count", "tf_Conv2D", 2), + std::make_tuple("mo", "op_count", "tf_NoOp", 1), + std::make_tuple("mo", "op_count", "tf_Placeholder", 2), + std::make_tuple("mo", "op_count", "tf_Relu", 4)}}; + return res; } diff --git a/src/frontends/tests/frontend/shared/include/telemetry.hpp b/src/frontends/tests/frontend/shared/include/telemetry.hpp index a5d2e55a6c5..ba0d0acf253 100644 --- a/src/frontends/tests/frontend/shared/include/telemetry.hpp +++ b/src/frontends/tests/frontend/shared/include/telemetry.hpp @@ -45,7 +45,7 @@ struct TelemetryFEParam { std::string m_frontEndName; std::string m_modelsPath; std::string m_modelName; - std::set> m_expected_events; + std::set>> m_expected_events; }; class FrontEndTelemetryTest : public ::testing::TestWithParam { diff --git a/src/frontends/tests/frontend/shared/src/telemetry.cpp b/src/frontends/tests/frontend/shared/src/telemetry.cpp index b727f00d95a..38e360d3e0e 100644 --- a/src/frontends/tests/frontend/shared/src/telemetry.cpp +++ b/src/frontends/tests/frontend/shared/src/telemetry.cpp @@ -63,8 +63,16 @@ TEST_P(FrontEndTelemetryTest, TestTelemetryMock) { EXPECT_NO_THROW(m_frontEnd->add_extension(telemetry_extension)); m_inputModel = m_frontEnd->load(m_param.m_modelName); function = m_frontEnd->convert(m_inputModel); - EXPECT_EQ(m_test_telemetry.m_event_cnt, m_param.m_expected_events.size()); - EXPECT_EQ(m_test_telemetry.m_received_events, m_param.m_expected_events); + bool is_found = false; + for (const auto m_expected_events : m_param.m_expected_events) { + is_found = false; + is_found = (m_test_telemetry.m_event_cnt == m_expected_events.size()) && + (m_test_telemetry.m_received_events == m_expected_events); + if (is_found) { + break; + } + } + EXPECT_TRUE(is_found) << "Unexpected set of operations received from telemetry."; EXPECT_EQ(m_test_telemetry.m_trace_cnt, 0); EXPECT_EQ(m_test_telemetry.m_error_cnt, 0); @@ -73,8 +81,15 @@ TEST_P(FrontEndTelemetryTest, TestTelemetryMock) { EXPECT_NO_THROW(m_frontEnd->add_extension(telemetry_extension)); m_inputModel = m_frontEnd->load(m_param.m_modelName); function = m_frontEnd->decode(m_inputModel); - EXPECT_EQ(m_test_telemetry.m_event_cnt, m_param.m_expected_events.size()); - EXPECT_EQ(m_test_telemetry.m_received_events, m_param.m_expected_events); + for (const auto m_expected_events : m_param.m_expected_events) { + is_found = false; + is_found = (m_test_telemetry.m_event_cnt == m_expected_events.size()) && + (m_test_telemetry.m_received_events == m_expected_events); + if (is_found) { + break; + } + } + EXPECT_TRUE(is_found) << "Unexpected set of operations received from telemetry."; EXPECT_EQ(m_test_telemetry.m_trace_cnt, 0); EXPECT_EQ(m_test_telemetry.m_error_cnt, 0); } diff --git a/tests/layer_tests/requirements.txt b/tests/layer_tests/requirements.txt index d4bd42b05d0..e79a0746982 100644 --- a/tests/layer_tests/requirements.txt +++ b/tests/layer_tests/requirements.txt @@ -1,3 +1,2 @@ requests>=2.25.1 -numpy~=1.19.5; platform_system != "Windows" -numpy~=1.19.3; platform_system == "Windows" +numpy>=1.19.2 diff --git a/tools/benchmark_tool/requirements.txt b/tools/benchmark_tool/requirements.txt index 5fbd19cbc89..34f71537842 100644 --- a/tools/benchmark_tool/requirements.txt +++ b/tools/benchmark_tool/requirements.txt @@ -1,4 +1,4 @@ py-cpuinfo>=7.0.0 -numpy>=1.16.6,<1.20 +numpy>=1.16.6,<=1.23.1 progress>=1.5 opencv-python==4.5.* \ No newline at end of file diff --git a/tools/cross_check_tool/requirements.txt b/tools/cross_check_tool/requirements.txt index 87524d3aded..84528fb68b5 100644 --- a/tools/cross_check_tool/requirements.txt +++ b/tools/cross_check_tool/requirements.txt @@ -1,2 +1,2 @@ -numpy>=1.16.6,<1.20 +numpy>=1.16.6,<=1.23.1 opencv-python==4.5.* \ No newline at end of file diff --git a/tools/mo/requirements.txt b/tools/mo/requirements.txt index 854c3534694..0ccd6f27948 100644 --- a/tools/mo/requirements.txt +++ b/tools/mo/requirements.txt @@ -1,9 +1,9 @@ -tensorflow>=1.15.5,<2.6 +numpy>=1.16.6,<=1.23.1 +tensorflow>=1.15.5,<=2.9.1 mxnet~=1.2.0; sys_platform == 'win32' mxnet~=1.7.0.post2; sys_platform != 'win32' networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" -numpy>=1.16.6,<1.20 protobuf>=3.15.6 onnx>=1.8.1,<1.12 defusedxml>=0.7.1 diff --git a/tools/mo/requirements_caffe.txt b/tools/mo/requirements_caffe.txt index e766871be72..4fd1ee1158e 100644 --- a/tools/mo/requirements_caffe.txt +++ b/tools/mo/requirements_caffe.txt @@ -1,6 +1,6 @@ networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" -numpy>=1.16.6,<1.20 +numpy>=1.16.6,<=1.23.1 protobuf>=3.15.6 defusedxml>=0.7.1 requests>=2.25.1 diff --git a/tools/mo/requirements_kaldi.txt b/tools/mo/requirements_kaldi.txt index c566483fa38..479c6a9308b 100644 --- a/tools/mo/requirements_kaldi.txt +++ b/tools/mo/requirements_kaldi.txt @@ -1,6 +1,6 @@ networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" -numpy>=1.16.6,<1.20 +numpy>=1.16.6,<=1.23.1 defusedxml>=0.7.1 requests>=2.25.1 fastjsonschema~=2.15.1 diff --git a/tools/mo/requirements_mxnet.txt b/tools/mo/requirements_mxnet.txt index 1adf8c23ae4..0ad273e03ea 100644 --- a/tools/mo/requirements_mxnet.txt +++ b/tools/mo/requirements_mxnet.txt @@ -2,7 +2,7 @@ mxnet~=1.2.0; sys_platform == 'win32' mxnet~=1.7.0.post2; sys_platform != 'win32' networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" -numpy>=1.16.6,<1.20 +numpy>=1.16.6,<=1.23.1 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 065870c9a31..74d0b2205dc 100644 --- a/tools/mo/requirements_onnx.txt +++ b/tools/mo/requirements_onnx.txt @@ -1,7 +1,7 @@ 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.20 +numpy>=1.16.6,<=1.23.1 defusedxml>=0.7.1 requests>=2.25.1 fastjsonschema~=2.15.1 diff --git a/tools/mo/requirements_tf.txt b/tools/mo/requirements_tf.txt index 70cfe1cb712..ae03a18ed34 100644 --- a/tools/mo/requirements_tf.txt +++ b/tools/mo/requirements_tf.txt @@ -1,7 +1,7 @@ -tensorflow>=1.15.5,<2.6 +numpy>=1.16.6,<=1.23.1 +tensorflow>=1.15.5,<=2.9.1 networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" -numpy>=1.16.6,<1.20 defusedxml>=0.7.1 requests>=2.25.1 fastjsonschema~=2.15.1 diff --git a/tools/mo/requirements_tf2.txt b/tools/mo/requirements_tf2.txt index 8a1f2a314c4..66c9ec4be2b 100644 --- a/tools/mo/requirements_tf2.txt +++ b/tools/mo/requirements_tf2.txt @@ -1,8 +1,7 @@ -tensorflow~=2.5.0; python_version <= "3.6" -tensorflow~=2.5.3; python_version > "3.6" +numpy>=1.16.6,<=1.23.1 +tensorflow>=2.5,<=2.9.1 networkx~=2.5; python_version <= "3.6" networkx<2.8.1; python_version > "3.6" -numpy>=1.16.6,<1.20 defusedxml>=0.7.1 requests>=2.25.1 fastjsonschema~=2.15.1 diff --git a/tools/pot/setup.py b/tools/pot/setup.py index f688e235609..ee6ddac665c 100644 --- a/tools/pot/setup.py +++ b/tools/pot/setup.py @@ -67,7 +67,7 @@ if '--install-dev-extras' in sys.argv: INSTALL_REQUIRES = [ "scipy~=1.5.4", "jstyleson~=0.0.2", - "numpy>=1.16.6,<1.20", + "numpy>=1.16.6,<=1.23.1", "addict>=2.4.0", "networkx~=2.5;python_version<='3.6'", "networkx<2.8.1;python_version>'3.6'",