code: def test_gated_average_layer_multi_dimensional_inputs(self):
      network = layers.join(
          layers.Input((5, 5, 1)),
          layers.parallel(
              layers.Reshape() >> layers.Softmax(2),
              layers.Convolution((2, 2, 3)),
              layers.Convolution((2, 2, 3)),
          ),
          layers.GatedAverage(),
      )
  
      self.assertShapesEqual(network.input_shape, (None, 5, 5, 1))
      self.assertShapesEqual(network.output_shape, (None, 4, 4, 3))
  
      random_input = asfloat(np.random.random((8, 5, 5, 1)))
      actual_output = self.eval(network.output(random_input))
  
      self.assertEqual(actual_output.shape, (8, 4, 4, 3))
  
file_path: neupy/tests/layers/test_gated_average.py
imports: import numpy
  from neupy import layers
  from neupy.utils import asfloat
  from neupy.exceptions import LayerConnectionError
  from base import BaseTestCase
label_desc: Use image node_id 7 for calling the GatedAverageTestCase obj's underlying member method code with example usage: obj.test_gated_average_layer_multi_dimensional_inputs() without return types