code: def test_csSE_3d_shape(self):
      input_shape = (2, 16, 16, 16, 32)
      x = tf.ones(input_shape)
      se_layer = ChannelSpatialSELayer()
      out_se = se_layer(x)
  
      with self.cached_session() as sess:
          sess.run(tf.global_variables_initializer())
          out = sess.run(out_se)
          x_shape = tuple(x.shape.as_list())
          self.assertAllClose(x_shape, out.shape)
  
file_path: NiftyNet/tests/squeeze_excitation_test.py
imports: from __future__ import absolute_import, print_function
  import tensorflow
  from niftynet.layer.squeeze_excitation import ChannelSELayer
  from niftynet.layer.squeeze_excitation import SpatialSELayer
  from niftynet.layer.squeeze_excitation import ChannelSpatialSELayer
  from tests.niftynet_testcase import NiftyNetTestCase
label_desc: Use image node_id 3 for calling the SETest obj's underlying member method code with example usage: obj.test_csSE_3d_shape() without return types