class_docstr: Applies Maxout to the input.
  
  "Maxout Networks" Ian J. Goodfellow, David Warde-Farley, Mehdi Mirza, Aaron
  Courville, Yoshua Bengio. https://arxiv.org/abs/1302.4389
  
  Usually the operation is performed in the filter/channel dimension. This
  can also be used after Dense layers to reduce number of features.
  
  Args:
    num_units: Specifies how many features will remain after maxout
      in the `axis` dimension (usually channel).
      This must be a factor of number of features.
    axis: The dimension where max pooling will be performed. Default is the
      last dimension.
  
  Input shape:
    nD tensor with shape: `(batch_size, ..., axis_dim, ...)`.
  
  Output shape:
    nD tensor with shape: `(batch_size, ..., num_units, ...)`.
code: def compute_output_shape(self, input_shape):
      input_shape = tf.TensorShape(input_shape).as_list()
      input_shape[self.axis] = self.num_units
      return tf.TensorShape(input_shape)
  
file_path: addons/tensorflow_addons/layers/maxout.py
imports: import tensorflow
  from typeguard import typechecked
label_desc: Use image node_id 3 for calling the Maxout obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) and returns: tf