diff --git a/modules/dnn/src/layers/nary_eltwise_layers.cpp b/modules/dnn/src/layers/nary_eltwise_layers.cpp index a84bc82530..d244fd6f81 100644 --- a/modules/dnn/src/layers/nary_eltwise_layers.cpp +++ b/modules/dnn/src/layers/nary_eltwise_layers.cpp @@ -406,10 +406,14 @@ public: { out_type = (inputs[0] == inputs[1]) ? inputs[0] : CV_32F; } - else if (baseIsFloat != expIsFloat) + else if (baseIsFloat && !expIsFloat) { out_type = inputs[0]; } + else if (!baseIsFloat && expIsFloat) + { + out_type = CV_32F; + } else { out_type = CV_32F;