code: def _test_deconv_layer_output_shape(
      self,
      rank,
      param_dict,
      output_shape,
      is_training=None,
      dropout_prob=None,
  ):
      if rank == 2:
          input_data = self.get_2d_input()
      elif rank == 3:
          input_data = self.get_3d_input()
  
      deconv_layer = DeconvolutionalLayer(**param_dict)
      output_data = deconv_layer(
          input_data, is_training=is_training, keep_prob=dropout_prob
      )
      print(deconv_layer)
      with self.cached_session() as sess:
          sess.run(tf.global_variables_initializer())
          output_value = sess.run(output_data)
          self.assertAllClose(output_shape, output_value.shape)
  
imports: from __future__ import absolute_import, print_function
  import tensorflow
  from tensorflow.contrib.layers.python.layers import regularizers
  from niftynet.layer.deconvolution import DeconvLayer
  from niftynet.layer.deconvolution import DeconvolutionalLayer
  from tests.niftynet_testcase import NiftyNetTestCase
label_desc: Use image node_id 4 for calling the DeconvTest obj's underlying member method code with example usage: obj._test_deconv_layer_output_shape(rank, param_dict, output_shape, is_training, dropout_prob) without return types