# How do dilated convolutions used for upsampling the inputs in FCNs?

I am reading the paper (Long et al., 2015) on fully convolutional networks (FCNs), and I came across the section where the authors describe dilated convolution as the trick to compensate for the cost problem in the shift-and-stich method.

Consider a layer (convolution or pooling) with input stride $$s$$, and a subsequent convolution layer with filter weights $$f_{ij}$$ (eliding the irrelevant feature dimensions). Setting the lower layer's input stride to 1 upsamples its output by a factor of $$s$$. However, convolving the original filter only sees a reduced portion of its (now upsampled) input.
...
Reproducing the full net output of the trick involves repeating this filter enlargement layer-by-layer until all subsampling is removed.

As far as I understand, it seems like the enlarged filters that are dilated can be applied to upsample the inputs and ultimately lead to an output that has the same form as the initial input. However, it appears to me that dilated convolution is used when one wants to increase the receptive field while avoiding the need of upsampling.

I am confused how the input is upsampled by the dilated convolution. How does one implement dilated convolutions on the FCN such that the input and output to the network have same form?

• Considering asking this question on CrossValidated with tag neural-network. Oct 2 at 12:51