From c5e404dc2988532906b08eb90b226be91b778ac0 Mon Sep 17 00:00:00 2001 From: Jonathan L Long Date: Mon, 29 Sep 2014 21:20:37 -0700 Subject: [PATCH] use method overrides for CuDNNPoolingLayer top blob checking --- include/caffe/vision_layers.hpp | 3 +++ src/caffe/layers/cudnn_pooling_layer.cpp | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/caffe/vision_layers.hpp b/include/caffe/vision_layers.hpp index a3c8bc0..58ac534 100644 --- a/include/caffe/vision_layers.hpp +++ b/include/caffe/vision_layers.hpp @@ -338,6 +338,9 @@ class CuDNNPoolingLayer : public PoolingLayer { virtual void Reshape(const vector*>& bottom, const vector*>& top); virtual ~CuDNNPoolingLayer(); + // Currently, cuDNN does not support the extra top blob. + virtual inline int MinTopBlobs() const { return -1; } + virtual inline int ExactNumTopBlobs() const { return 1; } protected: virtual void Forward_gpu(const vector*>& bottom, diff --git a/src/caffe/layers/cudnn_pooling_layer.cpp b/src/caffe/layers/cudnn_pooling_layer.cpp index 4d7573c..fc0222a 100644 --- a/src/caffe/layers/cudnn_pooling_layer.cpp +++ b/src/caffe/layers/cudnn_pooling_layer.cpp @@ -13,10 +13,9 @@ template void CuDNNPoolingLayer::LayerSetUp(const vector*>& bottom, const vector*>& top) { PoolingLayer::LayerSetUp(bottom, top); - // Sanity check: CUDNN currently only supports pad=0 and top.size()=1 cases. + // Sanity check: CUDNN currently only supports pad == 0. CHECK_EQ(this->pad_h_, 0); CHECK_EQ(this->pad_w_, 0); - CHECK_EQ(top.size(), 1); CUDNN_CHECK(cudnnCreate(&handle_)); cudnn::createTensor4dDesc(&bottom_desc_); cudnn::createTensor4dDesc(&top_desc_); -- 2.7.4