code: def deconv2d(
      input_, output_shape, k_h, k_w, d_h, d_w, stddev=0.02, name="deconv2d"):
    
    with tf.variable_scope(name):
      w = tf.get_variable(
          "w", [k_h, k_w, output_shape[-1], input_.get_shape()[-1]],
          initializer=tf.random_normal_initializer(stddev=stddev))
      deconv = tf.nn.conv2d_transpose(
          input_, w, output_shape=output_shape, strides=[1, d_h, d_w, 1])
      biases = tf.get_variable(
          "biases", [output_shape[-1]], initializer=tf.constant_initializer(0.0))
      return tf.reshape(tf.nn.bias_add(deconv, biases), deconv.get_shape())
docs: Deconvolution layer.