Deconvolution layer is a very unfortunate name and should rather be called a transposed convolutional layer.
Visually, for a transposed convolution with stride one and no padding, we just pad the original input (blue entries) with zeroes (white entries) (Figure 1).
In case of stride two and padding, the transposed convolution would look like this (Figure 2):
github上有较好的动画演示,大家有兴趣可以自己打开看看,如下图
最后一个是dilation的效果,大家如果有需要可以依据图理解一下其原理。