From 2b43d4f47750d47f705bb9d53772340ebad9c851 Mon Sep 17 00:00:00 2001 From: Dmitry Kurtaev Date: Sun, 17 Dec 2017 14:36:38 +0300 Subject: [PATCH] Fix default pooling layer type --- modules/dnn/src/layers/pooling_layer.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/dnn/src/layers/pooling_layer.cpp b/modules/dnn/src/layers/pooling_layer.cpp index 05744580ad..fab977bf82 100644 --- a/modules/dnn/src/layers/pooling_layer.cpp +++ b/modules/dnn/src/layers/pooling_layer.cpp @@ -67,13 +67,14 @@ class PoolingLayerImpl : public PoolingLayer public: PoolingLayerImpl(const LayerParams& params) { - type = MAX; computeMaxIdx = true; globalPooling = false; + stride = Size(1, 1); - if (params.has("pool")) + if (params.has("pool") || params.has("kernel_size") || + params.has("kernel_w") || params.has("kernel_h")) { - String pool = params.get("pool").toLowerCase(); + String pool = params.get("pool", "max").toLowerCase(); if (pool == "max") type = MAX; else if (pool == "ave") @@ -90,6 +91,8 @@ public: type = ROI; computeMaxIdx = false; } + else + CV_Error(Error::StsBadArg, "Cannot determine pooling type"); setParamsFrom(params); ceilMode = params.get("ceil_mode", true); pooledSize.width = params.get("pooled_w", 1);