Does tensorrt still has issues with pooling?

I am running nvcr.io/nvidia/tensorrt:19.03-py3 docker(tensorrt version 5.1.2.2) and when I want to optimise caffe model with tensorrt I get this error:

python3: caffe/caffeParser.cpp:107: virtual nvinfer1::DimsHW CaffeParserPoolingDimsCallback::compute(nvinfer1::DimsHW, nvinfer1::DimsHW, nvinfer1::DimsHW, nvinfer1::DimsHW, nvinfer1::DimsHW, const char*) const: Assertion `input.h() + 2 * padding.h() >= kernel.h()’ failed.
Aborted (core dumped)

From my research this should be corrected with tensorrt > 3.0.

I too am getting exactly the same error. The caffe model has been ported to multiple platforms, works on nvcaffe too. The model is quite simple and has been deployed in many places.
I have the same version TensorRT 5.1.2.2 with cuda 10.1 and cudnn 7.5 on Ubuntu 16.04

Perhaps I should downgrade my version and try again (since TRT 5.1 is a Release candidate). Unfortunately, I have cuda 10.1, and TRT 5.0 does not have a version for cuda 10.1 (only 10.0)

My network is a typical CNN with convolution followed by Relu in pooling for a few stages and followed by dense (fully connected) layers. The image size is a power of 2 and remains so at all layers since pooling stride is always a power of 2.
Some pooling layers use a kernel of 3x3 and stride of (2,2), while others have a kernel of 3x1 with a stride of (2,1). I suspect the 3x1 pooling may be giving the problem. Unfortunately the message on the screen contains very little other than the error message:


python: caffe/caffeParser.cpp:107: virtual nvinfer1::DimsHW CaffeParserPoolingDimsCallback::compute(nvinfer1::DimsHW, nvinfer1::DimsHW, nvinfer1::DimsHW, nvinfer1::DimsHW, nvinfer1::DimsHW, const char*) const: Assertion `input.h() + 2 * padding.h() >= kernel.h()’ failed.
Aborted (core dumped)


I’ll try an create a minimal network that reproduces this problem