#include "../precomp.hpp"
#include <opencv2/core/utils/logger.defines.hpp>
+#include <opencv2/dnn/shape_utils.hpp>
#undef CV_LOG_STRIP_LEVEL
#define CV_LOG_STRIP_LEVEL CV_LOG_LEVEL_DEBUG + 1
#include <opencv2/core/utils/logger.hpp>
{
// Check if all the inputs have the same shape.
bool equalInpShapes = true;
+ bool isShapeOnes = false;
MatShape outShape0;
for (int ii = 0; ii < num_inputs && !netInputShapes.empty(); ii++)
{
else if (outShape != outShape0)
{
equalInpShapes = false;
+ isShapeOnes = isAllOnes(outShape, 2, outShape.size()) ||
+ isAllOnes(outShape0, 2, outShape0.size());
break;
}
}
int id;
- if (equalInpShapes || netInputShapes.empty())
+ if (equalInpShapes || netInputShapes.empty() || (!equalInpShapes && isShapeOnes))
{
layerParams.set("operation", type == "RealDiv" ? "div" : "prod");
id = dstNet.addLayer(name, "Eltwise", layerParams);
runTensorFlowNet("eltwise_add_vec");
}
+TEST_P(Test_TensorFlow_layers, eltwise_mul_vec)
+{
+ runTensorFlowNet("eltwise_mul_vec");
+}
+
+
TEST_P(Test_TensorFlow_layers, channel_broadcast)
{
if (backend == DNN_BACKEND_INFERENCE_ENGINE_NN_BUILDER_2019)