<p dir="auto">To generate dense feature maps (e.g. semantic segmentation) the convolution and the maxpooling operators should have the option to define "holes" in the kernel.<br>
The concept is used  in the paper:<br>
Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs<br>
(Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, Alan L. Yuille)</p>
<p dir="auto">and it is implemented in the excellent  deeplab library based on Caffe.</p>
<p dir="auto">When a conv2d operator has a stride greater than the kernel size, the following error is thrown:<br>
<code class="notranslate">ValueError: ('stride must be less than or equal to filter size', 'stride: [2x2] filter: [Dimension(1)xDimension(1)]')</code><br>
This makes implementing the 1x1 convolutions used to reduce spatial resolution in several papers (MSRA 2015 among others) awkward. Also, a convolution with stride greater than kernel size may be unusual but is it still well defined. Fixing this may be as simple as removing this assertion.<br>
Thanks to everyone who developed TensorFlow, it's a fascinating tool.</p>