2D Deconvolution block
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.
Convolution is not itself an invertible operation, which means we cannot simply go from output back to the input. Deconvolution blocks have instead to learn weights in the same way as Convolution layers.
Deconvolutional blocks operate similarly to convolution blocks, but stride has the opposite effect (making the output bigger, not smaller).
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. This 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.
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.