From ef5d921eac56cb15b737071356085d234c861af1 Mon Sep 17 00:00:00 2001 From: Dmitry Kurtaev Date: Thu, 15 Nov 2018 14:10:24 +0300 Subject: [PATCH] Fix Vulkan's max pooling in case of no output indices --- modules/dnn/src/vkcom/src/op_pool.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/modules/dnn/src/vkcom/src/op_pool.cpp b/modules/dnn/src/vkcom/src/op_pool.cpp index 71cd1019c5..ec1c587918 100644 --- a/modules/dnn/src/vkcom/src/op_pool.cpp +++ b/modules/dnn/src/vkcom/src/op_pool.cpp @@ -90,16 +90,10 @@ bool OpPool::forward(std::vector& ins, std::vector& blobs, std::vector& outs) { - for (size_t ii = 0; ii < ins.size(); ii++) - { - Tensor& inpMat = ins[ii]; - int out_index = (pool_type_ == kPoolTypeMax) ? 2 : 1; - Tensor& outMat = outs[out_index * ii]; - Tensor maskMat = (pool_type_ == kPoolTypeMax) ? outs[2 * ii + 1] : Tensor(); - if (!forward(inpMat, outMat, maskMat)) - return false; - } - return true; + Tensor& inpMat = ins[0]; + Tensor& outMat = outs[0]; + Tensor maskMat = outs.size() > 1 ? outs[1] : Tensor(); + return forward(inpMat, outMat, maskMat); } bool OpPool::forward(Tensor& in, Tensor& out, Tensor& mask)