Mat bias = getBlob(node_proto, constBlobs, 2);
layerParams.blobs.push_back(bias);
}
+ if (constBlobs.find(node_proto.input(0)) != constBlobs.end())
+ {
+ Mat inputBuf = getBlob(node_proto, constBlobs, 0);
+
+ LayerParams constParams;
+ constParams.name = node_proto.input(0);
+ constParams.type = "Const";
+ constParams.blobs.push_back(inputBuf);
+
+ opencv_onnx::NodeProto proto;
+ proto.add_output(constParams.name);
+ addLayer(dstNet, constParams, proto, layer_id, outShapes);
+ }
layerParams.set("num_output", layerParams.blobs[0].size[ind_num_out]);
layerParams.set("bias_term", node_proto.input_size() == 3);
testONNXModels("ZeroPad2d");
}
+TEST_P(Test_ONNX_layers, LinearWithConstant)
+{
+ if (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16)
+ applyTestTag(CV_TEST_TAG_DNN_SKIP_OPENCL_FP16);
+#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_LT(2020040000)
+ applyTestTag(CV_TEST_TAG_DNN_SKIP_IE);
+#endif
+ testONNXModels("lin_with_constant");
+}
+
+TEST_P(Test_ONNX_layers, MatmulWithTwoInputs)
+{
+ if (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16)
+ applyTestTag(CV_TEST_TAG_DNN_SKIP_OPENCL_FP16);
+#if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_LT(2020040000)
+ applyTestTag(CV_TEST_TAG_DNN_SKIP_IE);
+#endif
+ testONNXModels("matmul_with_two_inputs");
+}
+
INSTANTIATE_TEST_CASE_P(/*nothing*/, Test_ONNX_layers, dnnBackendsAndTargets());
class Test_ONNX_nets : public Test_ONNX_layers