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 __init__(
      self,
      size,
      padding="valid",
      stride=1,
      weight=init.HeNormal(gain=2),
      bias=0,
      name=None,
  ):
      super(Deconvolution, self).__init__(
          size=size,
          padding=padding,
          stride=stride,
          dilation=1,
          weight=weight,
          bias=bias,
          name=name,
      )
  
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 1 to create a new Deconvolution object from inherited base classes: Convolution with example: obj = Deconvolution(size, padding, stride, weight, bias, name)