<p>You simply skip computational layer with a dilated convolution layer:</p>
<p>For example a dilated convolution with</p>
<ul>
<li>a filter kernel k×k = 3×3, dilation rate r = 2, stride s = 1 and no padding</li>
</ul>
<p><strong>is comparable to</strong></p>
<ul>
<li>2x downsampling followed by 3x3 convolution followed by 2x upsampling</li>
</ul>
<p>For further reference look at the amazing paper from Vincent Dumoulin, Francesco Visin:
<a href="https://arxiv.org/abs/1603.07285" rel="nofollow noreferrer">A guide to convolution arithmetic for deep learning</a></p>
<p>Also on the github of this paper is a animation how dilated convolution works:
<a href="https://github.com/vdumoulin/conv_arithmetic" rel="nofollow noreferrer">https://github.com/vdumoulin/conv_arithmetic</a></p>
Why is dilated convolution computationally efficient?
<p>I have been studying UNet inspired architecture ENet and I think I follow the basic concepts. The ground-rock of efficiency of ENet is dilated convolution (apart other things). I understand the preserving spatial resolution, how it is computed and so on, however I can't understand why it is computationally and memory-wise less expensive than e.g. max-pooling.</p>
<p>ENet: <a href="https://arxiv.org/pdf/1606.02147.pdf" rel="nofollow noreferrer">https://arxiv.org/pdf/1606.02147.pdf</a></p>