'Create a new Deconvolution parameter object.
This then is passed as an argument to all deconvolution kernels.
Arguments:
dtype (data-type, optional): If present, specifies the underlying
type to employ for each element.
N (int): Number of images in mini-batch
C (int): Number of input feature maps
K (int): Number of output feature maps
P (int): Height of output
Q (int): Width of output
R (int, optional): Height of filter kernel.  Defaults to 1
S (int, optional): Width of filter kernel.  Defaults to 1
pad_d (int, optional): amount of zero-padding around the depth edge
Defaults to 0.
pad_h (int, optional): amount of zero-padding around the height edge
Defaults to 0.
pad_w (int, optional): amount of zero-padding around the width edge
Defaults to 0.
str_d (int, optional): factor to step the filters by in the depth
direction.  Defaults to 1
str_h (int, optional): factor to step the filters by in the depth
direction.  Defaults to 1
str_w (int, optional): factor to step the filters by in the depth
direction.  Defaults to 1
Leave spatial dimensions at 1 to allow feature map pooling in the fc layers.'

@abc.abstractmethod
def deconv_layer(self, dtype, N, C, K, P, Q, R=1, S=1, pad_d=0, pad_h=0, pad_w=0, str_d=1, str_h=1, str_w=1):

    raise NotImplementedError()
