'Sets shape based parameters of this layer given an input tuple or int
or input layer.
Arguments:
in_obj (int, tuple, Layer or Tensor): object that provides shape
information for layer
Returns:
(tuple): shape of output data'

def configure(self, in_obj):

    super(Deconvolution, self).configure(in_obj)
    if (self.nglayer is None):
        assert isinstance(self.in_shape, tuple)
        ikeys = (('K', 'P', 'Q') if (len(self.in_shape) == 3) else ('K', 'M', 'P', 'Q'))
        shapedict = {k: x for (k, x) in zip(ikeys, self.in_shape)}
        shapedict['N'] = self.be.bsz
        self.deconvparams.update(shapedict)
        self.nglayer = self.be.deconv_layer(self.be.default_dtype, **self.deconvparams)
        (C, D, H, W, N) = self.nglayer.dimI
        self.out_shape = ((C, H, W) if (D == 1) else (C, D, H, W))
    if (self.weight_shape is None):
        self.weight_shape = self.nglayer.dimF2
    if self.bsum:
        self.batch_sum_shape = (self.nglayer.C, 1)
    return self
