From f5dc8e77962484b11081a570177c4b6929205240 Mon Sep 17 00:00:00 2001 From: Yury Gaydaychuk Date: Fri, 16 Jun 2023 09:02:25 +0200 Subject: [PATCH] [ONNX FE] [CPU] Tests were aligned with DeformableConvolution specification (#10808) --- .../deformable_conv_2d.prototxt | 6 ++--- .../tests/onnx_import_org_openvino.in.cpp | 21 +++++++++++++----- .../onnx/tests/runtime/ie/unit_test.manifest | 3 --- .../deformable_convolution.cpp | 22 ++++++++++++++++++- 4 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/frontends/onnx/tests/models/org.openvinotoolkit/deformable_conv_2d.prototxt b/src/frontends/onnx/tests/models/org.openvinotoolkit/deformable_conv_2d.prototxt index 6151ddd7435..7c211c034e6 100644 --- a/src/frontends/onnx/tests/models/org.openvinotoolkit/deformable_conv_2d.prototxt +++ b/src/frontends/onnx/tests/models/org.openvinotoolkit/deformable_conv_2d.prototxt @@ -41,13 +41,13 @@ graph { dim_value: 1 } dim { - dim_value: 1 + dim_value: 8 } dim { - dim_value: 2 + dim_value: 3 } dim { - dim_value: 2 + dim_value: 3 } } } diff --git a/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp b/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp index 909eb4bb7bf..4507ba5d5e5 100644 --- a/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp +++ b/src/frontends/onnx/tests/onnx_import_org_openvino.in.cpp @@ -574,12 +574,23 @@ NGRAPH_TEST(${BACKEND_NAME}, onnx_model_deformable_conv_2d) { {1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f}); // deformations - test_case.add_input({0.5f, -0.5f, 0.0f, 1.0f}); - - test_case.add_expected_output( - Shape{1, 1, 3, 3}, - {4.5999999f, 5.2000003f, 6.4000001f, 8.4000006f, 9.8000002f, 9.6999998f, 11.5f, 13.4000006f, 14.3999996f}); + test_case.add_input({0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 0.5f, -0.5f, 0.0f, + 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, + 0.0f, 1.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 1.0f, + 0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 0.5f, -0.5f, 0.0f, + 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, + 0.0f, 1.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 0.5f, -0.5f, 0.0f, 1.0f, 1.0f}); + test_case.add_expected_output(Shape{1, 1, 3, 3}, + {6.9000001f, + 2.8500001f, + 6.4000001f, + 13.4000006f, + 11.8999996f, + 7.9000006f, + 12.4000006f, + 4.6999998f, + 1.6000000f}); test_case.run(); } diff --git a/src/frontends/onnx/tests/runtime/ie/unit_test.manifest b/src/frontends/onnx/tests/runtime/ie/unit_test.manifest index 2a40b04d191..cdca6a21ed3 100644 --- a/src/frontends/onnx/tests/runtime/ie/unit_test.manifest +++ b/src/frontends/onnx/tests/runtime/ie/unit_test.manifest @@ -383,9 +383,6 @@ IE_CPU/ElemTypesTests/1.onnx_test_add_abc_set_precission # RuntimeError: Unsupported dynamic ops: v4::Interpolate - Ticket: 50691 onnx_upsample6_dynamic -# random values returned from the plugin: ticket 51762 -onnx_model_deformable_conv_2d - # Not yet implemented - refer PR#6601 IE_CPU.onnx_model_gather_float_2D_neg_indices diff --git a/src/plugins/intel_cpu/tests/functional/single_layer_tests/deformable_convolution.cpp b/src/plugins/intel_cpu/tests/functional/single_layer_tests/deformable_convolution.cpp index e15dffb464c..43f1aa28731 100644 --- a/src/plugins/intel_cpu/tests/functional/single_layer_tests/deformable_convolution.cpp +++ b/src/plugins/intel_cpu/tests/functional/single_layer_tests/deformable_convolution.cpp @@ -342,6 +342,12 @@ const std::vector> spatParamsDilationUneven = { {1, 1}, // off. spat. shape {2, 2} // ker. spat. shape }; +const std::vector> spatParams5_onnx2d = { + {1}, // batch + {4, 4}, // in. spat. shape + {3, 3}, // off. spat. shape + {2, 2} // ker. spat. shape +}; const std::vector> channelParamsSingleGr = { {1}, // gr. 2,4 {1, 2}, // def. gr. 1,2 @@ -360,7 +366,12 @@ const std::vector> channelParamsMulGr = { {3, 7}, // in. ch. per gr. {3, 7} // out. ch. per gr. }; - +const std::vector> channelParams_onnx2d = { + {1}, // gr. 2,4 + {1}, // def. gr. 1,2 + {1}, // in. ch. per gr. + {1} // out. ch. per gr. +}; const std::vector> dynShapeChainRef = { { // gr == 2, dg == 1, in_ch_per_gr == 3, out_ch_per_gr == 3 @@ -599,6 +610,14 @@ const auto params10 = ::testing::Combine( ::testing::ValuesIn(netPrecisions), ::testing::Values(CommonTestUtils::DEVICE_CPU)), ::testing::ValuesIn(filterCPUInfoForDevice(false))); +const auto params11 = ::testing::Combine( + ::testing::Combine( + addSpParams, + ::testing::ValuesIn(static_shapes_to_test_representation(buildStaticParams(spatParams5_onnx2d, channelParams_onnx2d))), + defConvSpecificParams, + ::testing::ValuesIn(netPrecisions), + ::testing::Values(CommonTestUtils::DEVICE_CPU)), + ::testing::ValuesIn(filterCPUInfoForDevice())); INSTANTIATE_TEST_SUITE_P(DefConvLayoutTest1, DefConvLayerCPUTest, params1, DefConvLayerCPUTest::getTestCaseName); INSTANTIATE_TEST_SUITE_P(DefConvLayoutTest2, DefConvLayerCPUTest, params2, DefConvLayerCPUTest::getTestCaseName); @@ -610,5 +629,6 @@ INSTANTIATE_TEST_SUITE_P(DefConvLayoutTest7, DefConvLayerCPUTest, params7, DefCo INSTANTIATE_TEST_SUITE_P(DefConvLayoutTest8, DefConvLayerCPUTest, params8, DefConvLayerCPUTest::getTestCaseName); INSTANTIATE_TEST_SUITE_P(DefConvLayoutTest9, DefConvLayerCPUTest, params9, DefConvLayerCPUTest::getTestCaseName); INSTANTIATE_TEST_SUITE_P(DefConvLayoutTest10, DefConvLayerCPUTest, params10, DefConvLayerCPUTest::getTestCaseName); +INSTANTIATE_TEST_SUITE_P(DefConvLayoutTest11, DefConvLayerCPUTest, params11, DefConvLayerCPUTest::getTestCaseName); } // namespace } // namespace CPULayerTestsDefinitions