code: def _test_conv_output_shape(self, rank, param_dict, output_shape):
      if rank == 2:
          input_data = self.get_2d_input()
      elif rank == 3:
          input_data = self.get_3d_input()
  
      conv_layer = ConvLayer(**param_dict)
      output_data = conv_layer(input_data)
      print(conv_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 division, absolute_import, print_function
  import functools
  import numpy
  import tensorflow
  from tensorflow.contrib.layers.python.layers import regularizers
  from niftynet.layer.convolution import ConvLayer
  from niftynet.layer.convolution import ConvolutionalLayer
  from tests.niftynet_testcase import NiftyNetTestCase
label_desc: Use image node_id 3 for calling the ConvTest obj's underlying member method code with example usage: obj._test_conv_output_shape(rank, param_dict, output_shape) without return types