mirror of
https://github.com/opencv/opencv.git
synced 2024-11-25 11:40:44 +08:00
Merge pull request #21796 from alalek:dnn_reduce_fixup_21601
This commit is contained in:
commit
5e434073d4
@ -25,6 +25,7 @@ class ReduceLayerImpl CV_FINAL : public ReduceLayer
|
|||||||
public:
|
public:
|
||||||
ReduceLayerImpl(const LayerParams& params)
|
ReduceLayerImpl(const LayerParams& params)
|
||||||
{
|
{
|
||||||
|
setParamsFrom(params);
|
||||||
// set reduce type
|
// set reduce type
|
||||||
CV_Assert(params.has("reduce"));
|
CV_Assert(params.has("reduce"));
|
||||||
String typeString = toLowerCase(params.get<String>("reduce"));
|
String typeString = toLowerCase(params.get<String>("reduce"));
|
||||||
|
@ -1267,7 +1267,10 @@ CASE(test_reduce_l1_negative_axes_keep_dims_example)
|
|||||||
CASE(test_reduce_l1_negative_axes_keep_dims_random)
|
CASE(test_reduce_l1_negative_axes_keep_dims_random)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_l2_default_axes_keepdims_example)
|
CASE(test_reduce_l2_default_axes_keepdims_example)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
default_l1 = 0.01f; // Expected: (normL1) <= (l1), actual: 0.00490189 vs 0.004)
|
||||||
|
#endif
|
||||||
CASE(test_reduce_l2_default_axes_keepdims_random)
|
CASE(test_reduce_l2_default_axes_keepdims_random)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_l2_do_not_keepdims_example)
|
CASE(test_reduce_l2_do_not_keepdims_example)
|
||||||
@ -1291,7 +1294,10 @@ CASE(test_reduce_log_sum_default)
|
|||||||
CASE(test_reduce_log_sum_desc_axes)
|
CASE(test_reduce_log_sum_desc_axes)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_log_sum_exp_default_axes_keepdims_example)
|
CASE(test_reduce_log_sum_exp_default_axes_keepdims_example)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
default_l1 = 0.01f; // Expected: (normL1) <= (l1), actual: 0.00671387 vs 0.004
|
||||||
|
#endif
|
||||||
CASE(test_reduce_log_sum_exp_default_axes_keepdims_random)
|
CASE(test_reduce_log_sum_exp_default_axes_keepdims_random)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_log_sum_exp_do_not_keepdims_example)
|
CASE(test_reduce_log_sum_exp_do_not_keepdims_example)
|
||||||
@ -1357,21 +1363,47 @@ CASE(test_reduce_min_negative_axes_keepdims_example)
|
|||||||
CASE(test_reduce_min_negative_axes_keepdims_random)
|
CASE(test_reduce_min_negative_axes_keepdims_random)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_prod_default_axes_keepdims_example)
|
CASE(test_reduce_prod_default_axes_keepdims_example)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
SKIP_MYRIAD; // accuracy (Expected: (normL1) <= (l1), actual: inf vs 0.004)
|
||||||
|
#endif
|
||||||
CASE(test_reduce_prod_default_axes_keepdims_random)
|
CASE(test_reduce_prod_default_axes_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
{
|
||||||
|
default_l1 = 5; // Expected: (normL1) <= (l1), actual: 2.66211 vs 0.004 |ref| = 24621.337890625
|
||||||
|
default_lInf = 5; // Expected: (normInf) <= (lInf), actual: 2.66211 vs 0.02 |ref| = 24621.337890625
|
||||||
|
}
|
||||||
|
#endif
|
||||||
CASE(test_reduce_prod_do_not_keepdims_example)
|
CASE(test_reduce_prod_do_not_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_prod_do_not_keepdims_random)
|
CASE(test_reduce_prod_do_not_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
{
|
||||||
|
default_l1 = 0.01f; // Expected: (normL1) <= (l1), actual: 0.00436729 vs 0.004
|
||||||
|
default_lInf = 0.05f; // Expected: (normInf) <= (lInf), actual: 0.0201836 vs 0.02
|
||||||
|
}
|
||||||
|
#endif
|
||||||
CASE(test_reduce_prod_keepdims_example)
|
CASE(test_reduce_prod_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_prod_keepdims_random)
|
CASE(test_reduce_prod_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
{
|
||||||
|
default_l1 = 0.01f; // Expected: (normL1) <= (l1), actual: 0.00436729 vs 0.004
|
||||||
|
default_lInf = 0.05f; // Expected: (normInf) <= (lInf), actual: 0.0201836 vs 0.02
|
||||||
|
}
|
||||||
|
#endif
|
||||||
CASE(test_reduce_prod_negative_axes_keepdims_example)
|
CASE(test_reduce_prod_negative_axes_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_prod_negative_axes_keepdims_random)
|
CASE(test_reduce_prod_negative_axes_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
{
|
||||||
|
default_l1 = 0.01f; // Expected: (normL1) <= (l1), actual: 0.00436729 vs 0.004
|
||||||
|
default_lInf = 0.05f; // Expected: (normInf) <= (lInf), actual: 0.0201836 vs 0.02
|
||||||
|
}
|
||||||
|
#endif
|
||||||
CASE(test_reduce_sum_default_axes_keepdims_example)
|
CASE(test_reduce_sum_default_axes_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_sum_default_axes_keepdims_random)
|
CASE(test_reduce_sum_default_axes_keepdims_random)
|
||||||
@ -1395,19 +1427,40 @@ CASE(test_reduce_sum_negative_axes_keepdims_random)
|
|||||||
CASE(test_reduce_sum_square_default_axes_keepdims_example)
|
CASE(test_reduce_sum_square_default_axes_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_sum_square_default_axes_keepdims_random)
|
CASE(test_reduce_sum_square_default_axes_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
default_l1 = 0.05f; // Expected: (normL1) <= (l1), actual: 0.0183411 vs 0.004
|
||||||
|
#endif
|
||||||
CASE(test_reduce_sum_square_do_not_keepdims_example)
|
CASE(test_reduce_sum_square_do_not_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_sum_square_do_not_keepdims_random)
|
CASE(test_reduce_sum_square_do_not_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
{
|
||||||
|
default_l1 = 0.05f; // Expected: (normL1) <= (l1), actual: 0.010789 vs 0.004
|
||||||
|
default_lInf = 0.05f; // Expected: (normInf) <= (lInf), actual: 0.0290298 vs 0.02
|
||||||
|
}
|
||||||
|
#endif
|
||||||
CASE(test_reduce_sum_square_keepdims_example)
|
CASE(test_reduce_sum_square_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_sum_square_keepdims_random)
|
CASE(test_reduce_sum_square_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
{
|
||||||
|
default_l1 = 0.05f; // Expected: (normL1) <= (l1), actual: 0.010789 vs 0.004
|
||||||
|
default_lInf = 0.05f; // Expected: (normInf) <= (lInf), actual: 0.0290298 vs 0.02
|
||||||
|
}
|
||||||
|
#endif
|
||||||
CASE(test_reduce_sum_square_negative_axes_keepdims_example)
|
CASE(test_reduce_sum_square_negative_axes_keepdims_example)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_reduce_sum_square_negative_axes_keepdims_random)
|
CASE(test_reduce_sum_square_negative_axes_keepdims_random)
|
||||||
// no filter
|
#if SKIP_SET_1
|
||||||
|
if (target == DNN_TARGET_MYRIAD)
|
||||||
|
{
|
||||||
|
default_l1 = 0.05f; // Expected: (normL1) <= (l1), actual: 0.010789 vs 0.004
|
||||||
|
default_lInf = 0.05f; // Expected: (normInf) <= (lInf), actual: 0.0290298 vs 0.02
|
||||||
|
}
|
||||||
|
#endif
|
||||||
CASE(test_reflect_pad)
|
CASE(test_reflect_pad)
|
||||||
// no filter
|
// no filter
|
||||||
CASE(test_relu)
|
CASE(test_relu)
|
||||||
|
@ -358,7 +358,18 @@ TEST_P(Test_ONNX_layers, ReduceSum)
|
|||||||
TEST_P(Test_ONNX_layers, ReduceMax)
|
TEST_P(Test_ONNX_layers, ReduceMax)
|
||||||
{
|
{
|
||||||
testONNXModels("reduce_max");
|
testONNXModels("reduce_max");
|
||||||
|
}
|
||||||
|
TEST_P(Test_ONNX_layers, ReduceMax_axis_0)
|
||||||
|
{
|
||||||
testONNXModels("reduce_max_axis_0");
|
testONNXModels("reduce_max_axis_0");
|
||||||
|
}
|
||||||
|
TEST_P(Test_ONNX_layers, ReduceMax_axis_1)
|
||||||
|
{
|
||||||
|
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
|
||||||
|
// [ GENERAL_ERROR ] AssertionFailed: !out.networkInputs.empty()
|
||||||
|
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_MYRIAD)
|
||||||
|
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
|
||||||
|
#endif
|
||||||
testONNXModels("reduce_max_axis_1");
|
testONNXModels("reduce_max_axis_1");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,10 +389,28 @@ TEST_P(Test_ONNX_layers, ArgLayer)
|
|||||||
|
|
||||||
TEST_P(Test_ONNX_layers, Scale)
|
TEST_P(Test_ONNX_layers, Scale)
|
||||||
{
|
{
|
||||||
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019)
|
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
|
||||||
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER);
|
// Ngraph operation Reshape with name ReduceMean_0 has dynamic output shape on 0 port, but CPU plug-in supports only static shape
|
||||||
|
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL)
|
||||||
|
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
|
||||||
|
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_OPENCL_FP16)
|
||||||
|
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_OPENCL_FP16, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
|
||||||
|
#endif
|
||||||
|
#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021040000)
|
||||||
|
// accuracy
|
||||||
|
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_MYRIAD)
|
||||||
|
applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_VERSION);
|
||||||
|
#endif
|
||||||
testONNXModels("scale");
|
testONNXModels("scale");
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_P(Test_ONNX_layers, Scale_broadcast)
|
||||||
|
{
|
||||||
testONNXModels("scale_broadcast", npy, 0, 0, false, true, 3);
|
testONNXModels("scale_broadcast", npy, 0, 0, false, true, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_P(Test_ONNX_layers, Scale_broadcast_mid)
|
||||||
|
{
|
||||||
testONNXModels("scale_broadcast_mid", npy, 0, 0, false, true, 2);
|
testONNXModels("scale_broadcast_mid", npy, 0, 0, false, true, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user