diff --git a/modules/dnn/src/layers/fully_connected_layer.cpp b/modules/dnn/src/layers/fully_connected_layer.cpp index 3f3b62b106..03349253c0 100644 --- a/modules/dnn/src/layers/fully_connected_layer.cpp +++ b/modules/dnn/src/layers/fully_connected_layer.cpp @@ -565,7 +565,7 @@ public: } else { - std::vector data = {(size_t)ieInpNode->get_shape()[0], (size_t)blobs[0].size[1]}; + std::vector data = {(int64_t)ieInpNode->get_shape()[0], (int64_t)blobs[0].size[1]}; auto new_shape = std::make_shared(ngraph::element::i64, ngraph::Shape{2}, data.data()); auto inp = std::make_shared(ieInpNode, new_shape, true); diff --git a/modules/dnn/src/layers/permute_layer.cpp b/modules/dnn/src/layers/permute_layer.cpp index d8e5f66678..e08bfa0c5c 100644 --- a/modules/dnn/src/layers/permute_layer.cpp +++ b/modules/dnn/src/layers/permute_layer.cpp @@ -385,8 +385,9 @@ public: const std::vector >& nodes) CV_OVERRIDE { auto& ieInpNode = nodes[0].dynamicCast()->node; + std::vector order(_order.begin(), _order.end()); auto tr_axes = std::make_shared(ngraph::element::i64, - ngraph::Shape({_order.size()}), _order.data()); + ngraph::Shape({order.size()}), order.data()); auto transpose = std::make_shared(ieInpNode, tr_axes); return Ptr(new InfEngineNgraphNode(transpose)); } diff --git a/modules/dnn/test/test_layers.cpp b/modules/dnn/test/test_layers.cpp index 5713730e54..0c4ce11ca5 100644 --- a/modules/dnn/test/test_layers.cpp +++ b/modules/dnn/test/test_layers.cpp @@ -1108,6 +1108,9 @@ TEST_P(Layer_Test_Convolution_DLDT, Accuracy) const Backend backendId = get<0>(GetParam()); const Target targetId = get<1>(GetParam()); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + if (backendId != DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && backendId != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) throw SkipTestException("No support for async forward"); @@ -1118,9 +1121,8 @@ TEST_P(Layer_Test_Convolution_DLDT, Accuracy) else FAIL() << "Unknown backendId"; - std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; Net netDefault = readNet(_tf("layer_convolution.caffemodel"), _tf("layer_convolution.prototxt")); - Net net = readNet(_tf("layer_convolution" + suffix + ".xml"), _tf("layer_convolution" + suffix + ".bin")); + Net net = readNet(_tf("layer_convolution.xml"), _tf("layer_convolution.bin")); Mat inp = blobFromNPY(_tf("blob.npy")); @@ -1140,7 +1142,10 @@ TEST_P(Layer_Test_Convolution_DLDT, Accuracy) std::vector outLayers = net.getUnconnectedOutLayers(); ASSERT_EQ(net.getLayer(outLayers[0])->name, "output"); - ASSERT_EQ(net.getLayer(outLayers[0])->type, "Convolution"); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019) + ASSERT_EQ(net.getLayer(outLayers[0])->type, "Convolution"); + else + ASSERT_EQ(net.getLayer(outLayers[0])->type, "Add"); } TEST_P(Layer_Test_Convolution_DLDT, setInput_uint8) @@ -1148,6 +1153,9 @@ TEST_P(Layer_Test_Convolution_DLDT, setInput_uint8) const Backend backendId = get<0>(GetParam()); const Target targetId = get<1>(GetParam()); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + if (backendId != DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && backendId != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) throw SkipTestException("No support for async forward"); @@ -1164,12 +1172,10 @@ TEST_P(Layer_Test_Convolution_DLDT, setInput_uint8) randu(inputs[0], 0, 255); inputs[0].convertTo(inputs[1], CV_32F); - std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; - Mat outs[2]; for (int i = 0; i < 2; ++i) { - Net net = readNet(_tf("layer_convolution" + suffix + ".xml"), _tf("layer_convolution" + suffix + ".bin")); + Net net = readNet(_tf("layer_convolution.xml"), _tf("layer_convolution.bin")); net.setPreferableBackend(backendId); net.setPreferableTarget(targetId); net.setInput(inputs[i]); @@ -1185,6 +1191,9 @@ TEST_P(Layer_Test_Convolution_DLDT, multithreading) const Backend backendId = get<0>(GetParam()); const Target targetId = get<1>(GetParam()); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + if (backendId != DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && backendId != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) throw SkipTestException("No support for async forward"); @@ -1195,9 +1204,8 @@ TEST_P(Layer_Test_Convolution_DLDT, multithreading) else FAIL() << "Unknown backendId"; - std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; - std::string xmlPath = _tf("layer_convolution" + suffix + ".xml"); - std::string binPath = _tf("layer_convolution" + suffix + ".bin"); + std::string xmlPath = _tf("layer_convolution.xml"); + std::string binPath = _tf("layer_convolution.bin"); Net firstNet = readNet(xmlPath, binPath); Net secondNet = readNet(xmlPath, binPath); Mat inp = blobFromNPY(_tf("blob.npy")); @@ -1256,8 +1264,7 @@ TEST_P(Test_DLDT_two_inputs_3dim, as_IR) int secondInpType = get<1>(GetParam()); Target targetId = get<2>(GetParam()); - std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; - Net net = readNet(_tf("net_two_inputs" + suffix + ".xml"), _tf("net_two_inputs.bin")); + Net net = readNet(_tf("net_two_inputs.xml"), _tf("net_two_inputs.bin")); std::vector inpSize = get<3>(GetParam()); Mat firstInp(3, inpSize.data(), firstInpType); Mat secondInp(3, inpSize.data(), secondInpType); diff --git a/modules/dnn/test/test_misc.cpp b/modules/dnn/test/test_misc.cpp index 1ca0d39672..6df089e11d 100644 --- a/modules/dnn/test/test_misc.cpp +++ b/modules/dnn/test/test_misc.cpp @@ -440,12 +440,14 @@ TEST_P(Async, model_optimizer_pipeline_set_and_forward_single) const Backend backendId = get<0>(get<1>(GetParam())); const Target targetId = get<1>(get<1>(GetParam())); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + if (backendId != DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && backendId != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) throw SkipTestException("No support for async forward"); - const std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; - const std::string& model = findDataFile("dnn/layers/layer_convolution" + suffix + ".bin"); - const std::string& proto = findDataFile("dnn/layers/layer_convolution" + suffix + ".xml"); + const std::string& model = findDataFile("dnn/layers/layer_convolution.bin"); + const std::string& proto = findDataFile("dnn/layers/layer_convolution.xml"); if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019) setInferenceEngineBackendType(CV_DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_API); @@ -499,12 +501,14 @@ TEST_P(Async, model_optimizer_pipeline_set_and_forward_all) const Backend backendId = get<0>(get<1>(GetParam())); const Target targetId = get<1>(get<1>(GetParam())); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + if (backendId != DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && backendId != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) throw SkipTestException("No support for async forward"); - const std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; - const std::string& model = findDataFile("dnn/layers/layer_convolution" + suffix + ".bin"); - const std::string& proto = findDataFile("dnn/layers/layer_convolution" + suffix + ".xml"); + const std::string& model = findDataFile("dnn/layers/layer_convolution.bin"); + const std::string& proto = findDataFile("dnn/layers/layer_convolution.xml"); if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019) setInferenceEngineBackendType(CV_DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_API); @@ -673,9 +677,11 @@ TEST_P(Test_Model_Optimizer, forward_two_nets) const Backend backendId = get<0>(GetParam()); const Target targetId = get<1>(GetParam()); - const std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; - const std::string& model = findDataFile("dnn/layers/layer_convolution" + suffix + ".bin"); - const std::string& proto = findDataFile("dnn/layers/layer_convolution" + suffix + ".xml"); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + + const std::string& model = findDataFile("dnn/layers/layer_convolution.bin"); + const std::string& proto = findDataFile("dnn/layers/layer_convolution.xml"); if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019) setInferenceEngineBackendType(CV_DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_API); @@ -712,12 +718,14 @@ TEST_P(Test_Model_Optimizer, readFromBuffer) const Backend backendId = get<0>(GetParam()); const Target targetId = get<1>(GetParam()); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + if (backendId != DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && backendId != DNN_BACKEND_INFERENCE_ENGINE_NGRAPH) throw SkipTestException("No support for async forward"); - const std::string suffix = (targetId == DNN_TARGET_OPENCL_FP16 || targetId == DNN_TARGET_MYRIAD) ? "_fp16" : ""; - const std::string& weightsFile = findDataFile("dnn/layers/layer_convolution" + suffix + ".bin"); - const std::string& modelFile = findDataFile("dnn/layers/layer_convolution" + suffix + ".xml"); + const std::string& weightsFile = findDataFile("dnn/layers/layer_convolution.bin"); + const std::string& modelFile = findDataFile("dnn/layers/layer_convolution.xml"); if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019) setInferenceEngineBackendType(CV_DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_API); @@ -765,8 +773,11 @@ TEST_P(Test_Model_Optimizer, flexible_inputs) const Backend backendId = get<0>(GetParam()); const Target targetId = get<1>(GetParam()); - const std::string& model = findDataFile("dnn/layers/layer_convolution_fp16.bin"); - const std::string& proto = findDataFile("dnn/layers/layer_convolution_fp16.xml"); + if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019 && targetId == DNN_TARGET_MYRIAD) + applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER); + + const std::string& model = findDataFile("dnn/layers/layer_convolution.bin"); + const std::string& proto = findDataFile("dnn/layers/layer_convolution.xml"); if (backendId == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019) setInferenceEngineBackendType(CV_DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_API);