From 85dc6a5f76281dc9f4e28ce03dc9402fdd261598 Mon Sep 17 00:00:00 2001 From: Tomasz Jankowski Date: Tue, 16 Apr 2024 06:44:52 +0200 Subject: [PATCH] [Tmpl test] MaxPool: enable whole Tensor comparison (#23995) ### Details: - Added shapes for expected outputs. ### Tickets: - CVS-137178 --- .../functional/op_reference/max_pool.cpp | 63 ++++++++++++++++--- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/src/plugins/template/tests/functional/op_reference/max_pool.cpp b/src/plugins/template/tests/functional/op_reference/max_pool.cpp index 0932af28aa6..666d10bf037 100644 --- a/src/plugins/template/tests/functional/op_reference/max_pool.cpp +++ b/src/plugins/template/tests/functional/op_reference/max_pool.cpp @@ -16,6 +16,7 @@ struct MaxPoolParams { MaxPoolParams(const Shape& input_shape, const element::Type& input_type, const std::vector& input_data, + const Shape& expected_shape, const std::vector& expected_values, const element::Type& indices_type, const std::vector& expected_indices, @@ -31,8 +32,8 @@ struct MaxPoolParams { m_input_type(input_type), m_indices_type(indices_type), m_input_data(CreateTensor(input_type, input_data)), - m_expected_values(CreateTensor(input_type, expected_values)), - m_expected_indices(CreateTensor(indices_type, expected_indices)), + m_expected_values(CreateTensor(expected_shape, input_type, expected_values)), + m_expected_indices(CreateTensor(expected_shape, indices_type, expected_indices)), m_strides(strides), m_dilations(dilations), m_pads_begin(pads_begin), @@ -60,14 +61,13 @@ struct MaxPoolParams { class ReferenceMaxPoolLayerTestV8 : public testing::TestWithParam, public CommonReferenceTest { public: void SetUp() override { - legacy_compare = true; - const auto params = GetParam(); + const auto& params = GetParam(); function = CreateFunction(params); inputData = {params.m_input_data}; refOutData = {params.m_expected_values, params.m_expected_indices}; } static std::string getTestCaseName(const testing::TestParamInfo& obj) { - const auto p = obj.param; + const auto& p = obj.param; std::ostringstream result; result << p.m_input_shape.size() - 2 << "D/"; result << "input_shape=" << p.m_input_shape << ";"; @@ -112,6 +112,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 8}, std::vector{2, 3, 4, 5, 6, 7, 8, 9}, element::i64, std::vector{1, 2, 3, 4, 5, 6, 7, 8}, @@ -124,6 +125,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 4}, std::vector{2, 4, 6, 8}, element::i64, std::vector{1, 3, 5, 7}, @@ -136,6 +138,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 5}, std::vector{1, 3, 5, 7, 9}, element::i64, std::vector{0, 2, 4, 6, 8}, @@ -149,6 +152,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 5}, std::vector{2, 4, 6, 8, 9}, element::i64, std::vector{1, 3, 5, 7, 8}, @@ -162,6 +166,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 4}, std::vector{3, 5, 7, 9}, element::i32, std::vector{2, 4, 6, 8}, @@ -174,6 +179,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 2, 4}, element::f32, std::vector{1.0f, 2.0f, 3.0f, 4.0f, 0.0f, -3.14f, -2.71f, 5.0f}, + Shape{1, 2, 2}, std::vector{3.0f, 4.0f, 0.0f, 5.0f}, element::i32, std::vector{2, 3, 4, 7}, @@ -186,6 +192,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 2, 4}, element::f32, std::vector{1.0f, 2.0f, 3.0f, 4.0f, 0.0f, -3.14f, -2.71f, 5.0f}, + Shape{1, 2, 2}, std::vector{3.0f, 4.0f, 0.0f, 5.0f}, element::i32, std::vector{2, 3, 0, 3}, @@ -200,6 +207,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 9, 3, 8, 5, 2, 6, 4, 7}, + Shape{1, 1, 4}, std::vector{1, 9, 6, 7}, element::i32, std::vector{0, 1, 6, 8}, @@ -215,6 +223,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 3, 3}, element::i32, std::vector{3, 9, 10, 5, 7, 2, 18, 8, -2}, + Shape{1, 1, 2, 2}, std::vector{9, 10, 18, 8}, element::i32, std::vector{1, 2, 6, 7}, @@ -227,6 +236,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, // simple 4x4 input test element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 3, 3}, std::vector{15, 15, 19, 15, 15, 19, 16, 10, 20}, element::i32, std::vector{5, 5, 7, 5, 5, 7, 12, 10, 15}, @@ -239,6 +249,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 2, 2}, std::vector{15, 19, 16, 20}, element::i32, std::vector{5, 7, 12, 15}, @@ -251,6 +262,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 2, 2}, std::vector{10, 17, 16, 20}, element::i32, std::vector{10, 11, 12, 15}, @@ -263,6 +275,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 2, 2}, std::vector{15, 19, 16, 20}, element::i32, std::vector{5, 7, 12, 15}, @@ -276,6 +289,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 2, 2}, std::vector{0, 21, 81, 37}, element::i32, std::vector{0, 8, 10, 13}, @@ -289,6 +303,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 2, 2}, std::vector{0, 24, 57, 58}, element::i32, std::vector{0, 2, 21, 22}, @@ -302,6 +317,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 2, 2}, std::vector{81, 24, 81, 58}, element::i32, std::vector{10, 2, 10, 22}, @@ -315,6 +331,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 3, 3}, std::vector{0, 24, 21, 81, 42, 37, 57, 58, 32}, element::i32, std::vector{0, 2, 8, 10, 17, 13, 21, 22, 19}, @@ -328,6 +345,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 3, 2}, std::vector{81, 37, 81, 58, 58, 58}, element::i32, std::vector{10, 13, 10, 22, 22, 22}, @@ -340,6 +358,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 2, 3, 3}, element::i64, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42}, + Shape{1, 2, 2, 2}, std::vector{13, 24, 13, 21, 81, 81, 41, 42}, element::i64, std::vector{3, 2, 3, 8, 1, 1, 6, 8}, @@ -354,6 +373,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 2, 2}, element::i32, std::vector{1, 2, 3, 4}, + Shape{1, 1, 2, 2}, std::vector{1, 2, 3, 4}, element::i32, std::vector{0, 1, 2, 3}, @@ -370,6 +390,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 2, 2, 2}, std::vector{40, 60, 80, 80, 50, 60, 80, 81}, element::i32, std::vector{12, 14, 16, 16, 18, 14, 16, 26}, @@ -383,6 +404,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 2, 2, 2}, std::vector{-20, -20, -20, -20, -20, -20, -20, -20}, element::i32, std::vector{13, 13, 13, 13, 13, 13, 13, 13}, @@ -396,6 +418,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 3, 1, 1}, std::vector{8, 80, 81}, element::i32, std::vector{8, 16, 26}, @@ -409,6 +432,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 3, 2, 2}, std::vector{4, 5, 7, 8, 40, 60, 80, 80, 50, 2, 50, 81}, element::i32, std::vector{4, 5, 7, 8, 3, 5, 7, 7, 0, 2, 6, 8}, @@ -426,14 +450,13 @@ INSTANTIATE_TEST_SUITE_P( class ReferenceMaxPoolLayerTestV14 : public testing::TestWithParam, public CommonReferenceTest { public: void SetUp() override { - legacy_compare = true; - const auto params = GetParam(); + const auto& params = GetParam(); function = CreateFunction(params); inputData = {params.m_input_data}; refOutData = {params.m_expected_values, params.m_expected_indices}; } static std::string getTestCaseName(const testing::TestParamInfo& obj) { - const auto p = obj.param; + const auto& p = obj.param; std::ostringstream result; result << p.m_input_shape.size() - 2 << "D/"; result << "input_shape=" << p.m_input_shape << ";"; @@ -478,6 +501,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 8}, std::vector{2, 3, 4, 5, 6, 7, 8, 9}, element::i64, std::vector{1, 2, 3, 4, 5, 6, 7, 8}, @@ -490,6 +514,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 4}, std::vector{2, 4, 6, 8}, element::i64, std::vector{1, 3, 5, 7}, @@ -502,6 +527,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 5}, std::vector{1, 3, 5, 7, 9}, element::i64, std::vector{0, 2, 4, 6, 8}, @@ -515,6 +541,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 5}, std::vector{2, 4, 6, 8, 9}, element::i64, std::vector{1, 3, 5, 7, 8}, @@ -528,6 +555,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 2, 3, 4, 5, 6, 7, 8, 9}, + Shape{1, 1, 4}, std::vector{3, 5, 7, 9}, element::i32, std::vector{2, 4, 6, 8}, @@ -540,6 +568,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 2, 4}, element::f32, std::vector{1.0f, 2.0f, 3.0f, 4.0f, 0.0f, -3.14f, -2.71f, 5.0f}, + Shape{1, 2, 2}, std::vector{3.0f, 4.0f, 0.0f, 5.0f}, element::i32, std::vector{2, 3, 4, 7}, @@ -552,6 +581,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 2, 4}, element::f32, std::vector{1.0f, 2.0f, 3.0f, 4.0f, 0.0f, -3.14f, -2.71f, 5.0f}, + Shape{1, 2, 2}, std::vector{3.0f, 4.0f, 0.0f, 5.0f}, element::i32, std::vector{2, 3, 0, 3}, @@ -566,6 +596,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 9}, element::i32, std::vector{1, 9, 3, 8, 5, 2, 6, 4, 7}, + Shape{1, 1, 4}, std::vector{1, 9, 6, 7}, element::i32, std::vector{0, 1, 6, 8}, @@ -581,6 +612,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 3, 3}, element::i32, std::vector{3, 9, 10, 5, 7, 2, 18, 8, -2}, + Shape{1, 1, 2, 2}, std::vector{9, 10, 18, 8}, element::i32, std::vector{1, 2, 6, 7}, @@ -593,6 +625,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, // simple 4x4 input test element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 3, 3}, std::vector{15, 15, 19, 15, 15, 19, 16, 10, 20}, element::i32, std::vector{5, 5, 7, 5, 5, 7, 12, 10, 15}, @@ -605,6 +638,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 2, 2}, std::vector{15, 19, 16, 20}, element::i32, std::vector{5, 7, 12, 15}, @@ -617,6 +651,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 2, 2}, std::vector{10, 17, 16, 20}, element::i32, std::vector{10, 11, 12, 15}, @@ -629,6 +664,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 4, 4}, element::i32, std::vector{8, -9, 1, -16, -14, 15, -17, 19, -13, 3, 10, 17, 16, -11, -15, 20}, + Shape{1, 1, 2, 2}, std::vector{15, 19, 16, 20}, element::i32, std::vector{5, 7, 12, 15}, @@ -642,6 +678,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 2, 2}, std::vector{0, 21, 81, 37}, element::i32, std::vector{0, 8, 10, 13}, @@ -655,6 +692,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 2, 2}, std::vector{0, 24, 57, 58}, element::i32, std::vector{0, 2, 21, 22}, @@ -668,6 +706,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 2, 2}, std::vector{81, 24, 81, 58}, element::i32, std::vector{10, 2, 10, 22}, @@ -681,6 +720,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 3, 2}, std::vector{81, 37, 81, 58, 58, 58}, element::i32, std::vector{10, 13, 10, 22, 22, 22}, @@ -694,6 +734,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42, 8, 32, 9, 57, 58, 29, 3}, + Shape{1, 1, 3, 3}, std::vector{0, 24, 21, 81, 42, 37, 57, 58, 32}, element::i32, std::vector{0, 2, 8, 10, 17, 13, 21, 22, 19}, @@ -706,6 +747,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 2, 3, 3}, element::i64, std::vector{0, -2, 24, 13, 7, -5, -4, 4, 21, -18, 81, 20, -15, 37, 23, 41, 18, 42}, + Shape{1, 2, 2, 2}, std::vector{13, 24, 13, 21, 81, 81, 41, 42}, element::i64, std::vector{3, 2, 3, 8, 1, 1, 6, 8}, @@ -720,6 +762,7 @@ INSTANTIATE_TEST_SUITE_P( MaxPoolParams(Shape{1, 1, 2, 2}, element::i32, std::vector{1, 2, 3, 4}, + Shape{1, 1, 2, 2}, std::vector{1, 2, 3, 4}, element::i32, std::vector{0, 1, 2, 3}, @@ -736,6 +779,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 2, 2, 2}, std::vector{40, 60, 80, 80, 50, 60, 80, 81}, element::i32, std::vector{12, 14, 16, 16, 18, 14, 16, 26}, @@ -749,6 +793,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 2, 2, 2}, std::vector{-20, -20, -20, -20, -20, -20, -20, -20}, element::i32, std::vector{13, 13, 13, 13, 13, 13, 13, 13}, @@ -762,6 +807,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 3, 1, 1}, std::vector{8, 80, 81}, element::i32, std::vector{8, 16, 26}, @@ -775,6 +821,7 @@ INSTANTIATE_TEST_SUITE_P( element::i32, std::vector{0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30, 40, -20, 60, 70, 80, 50, 50, 1, 2, 3, -15, -10, 50, 30, 81}, + Shape{1, 1, 3, 2, 2}, std::vector{4, 5, 7, 8, 40, 60, 80, 80, 50, 2, 50, 81}, element::i32, std::vector{4, 5, 7, 8, 3, 5, 7, 7, 0, 2, 6, 8},