The 2D Deconvolution block represents a layer that performs an opposite operation to 2D Convolution. This is also referred to as transposed convolution, which better reflects the actual mathematical operation.
The Deconvolution operation is used when we transform the output of a convolution back into a tensor that has the same shape as the input of that convolution which is useful if we want a model that transforms images into other images, instead of just giving categorical or scalar predictions. Autoencoders and image segmentation models are examples of such models.
Convolution is not itself an invertible operation, which means we cannot simply go from output back to the input; Deconvolution layers have instead to learn weights in the same way as Convolution layers.
They operate similarly to Convolution layers, but stride has the opposite effect (making the output bigger, not smaller).
Number of filters: The number of convolutional filters to include in the layer
Width of filter: The width of the weight matrix of a single filter
Height of filter: The width of the weight matrix of a single filter
Horizontal stride: The number of pixels to move while performing the convolution along the horizontal axis.
Vertical stride: Default: The number of pixels to move while performing the convolution along the vertical axis.
Activation: The function that will applied to each element of the output.
Padding: Same (output (height) x (width) is the same as the input) or valid (output (height) x (width) is smaller than the input)
Trainable: whether we want the training algorithm to change the value of the weights during training.