class_docstr: Deconvolution layer (also known as Transposed Convolution.).
  
  Parameters
  ----------
  {Convolution.size}
  
  {Convolution.padding}
  
  {Convolution.stride}
  
  {Convolution.dilation}
  
  weight : array-like, Tensorfow variable, scalar or Initializer
      Defines layer's weights. Shape of the weight will be equal to
      ``(filter rows, filter columns, output channels, input channels)``.
      Default initialization methods you can find
      :ref:`here <init-methods>`. Defaults to
      :class:`HeNormal(gain=2) <neupy.init.HeNormal>`.
  
  {Convolution.bias}
  
  {Convolution.name}
  
  Methods
  -------
  {Convolution.Methods}
  
  Attributes
  ----------
  {Convolution.Attributes}
  
  Examples
  --------
  >>> from neupy.layers import *
  >>> network = join(
  ...     Input((28, 28, 3)),
  ...     Convolution((3, 3, 16)),
  ...     Deconvolution((3, 3, 1)),
  ... )
  >>> network
  (?, 28, 28, 3) -> [... 3 layers ...] -> (?, 28, 28, 1)
code: def output_shape_per_dim(self, *args, **kwargs):
      return deconv_output_shape(*args, **kwargs)
  
imports: from __future__ import division
  import math
  import collections
  import six
  import tensorflow
  from neupy import init
  from neupy.utils import as_tuple
  from neupy.exceptions import LayerConnectionError
  from neupy.core.properties import TypedListProperty, Property, ParameterProperty
  from .base import BaseLayer
label_desc: Use image node_id 2 for calling the Deconvolution obj's underlying member method code with example usage: obj.output_shape_per_dim() and returns: deconv_output_shape