class_docstr: Fully-connected maxout layer.
  
  Let ``M``, ``P`` and ``N`` be an input dimension, a pool size,
  and an output dimension, respectively.
  For an input vector :math:`x` of size ``M``, it computes
  
  .. math::
  
    Y_{i} = \mathrm{max}_{j} (W_{ij\cdot}x + b_{ij}).
  
  Here :math:`W` is a weight tensor of shape ``(M, P, N)``,
  :math:`b` an  optional bias vector of shape ``(M, P)``
  and :math:`W_{ij\cdot}` is a sub-vector extracted from
  :math:`W` by fixing first and second dimensions to
  :math:`i` and :math:`j`, respectively.
  Minibatch dimension is omitted in the above equation.
  
  As for the actual implementation, this chain has a
  Linear link with a ``(M * P, N)`` weight matrix and
  an optional ``M * P`` dimensional bias vector.
  
  Args:
      in_size (int): Dimension of input vectors.
      out_size (int): Dimension of output vectors.
      pool_size (int): Number of channels.
      initialW (:ref:`initializer <initializer>`): Initializer to
          initialize the weight. When it is :class:`numpy.ndarray`,
          its ``ndim`` should be 3.
      initial_bias (:ref:`initializer <initializer>`): Initializer to
          initialize the bias. If ``None``, the bias is omitted.
          When it is :class:`numpy.ndarray`, its ``ndim`` should be 2.
  
  Attributes:
      linear (~chainer.Link): The Linear link that performs
          affine transformation.
  
  .. seealso:: :func:`~chainer.functions.maxout`
  
  .. seealso::
       Goodfellow, I., Warde-farley, D., Mirza, M.,
       Courville, A., & Bengio, Y. (2013).
       Maxout Networks. In Proceedings of the 30th International
       Conference on Machine Learning (ICML-13) (pp. 1319-1327).
       `URL <http://jmlr.org/proceedings/papers/v28/goodfellow13.html>`_
docstr: Applies the maxout layer.
  
  Args:
      x (~chainer.Variable): Batch of input vectors.
  
  Returns:
      ~chainer.Variable: Output of the maxout layer.
code: def forward(self, x):
      """Applies the maxout layer.
  
      Args:
          x (~chainer.Variable): Batch of input vectors.
  
      Returns:
          ~chainer.Variable: Output of the maxout layer.
      """
      y = self.linear(x)
      return maxout.maxout(y, self.pool_size)
  
file_path: chainer/chainer/links/activation/maxout.py
imports: import numpy
  import chainer
  from chainer.functions.activation import maxout
  from chainer import initializer
  from chainer import link
  from chainer.links.connection import linear
label_desc: Use image node_id 2 for calling the Maxout obj's underlying member method code with example usage: obj.forward(x) and returns: maxout