class_docstr: The affine layer, also known as the fully connected layer. Computes
  
  .. math::
      {\mathbf y} = {\mathbf A} {\mathbf x} + {\mathbf b}.
  
  where :math:`{\mathbf x}, {\mathbf y}` are the inputs and outputs respectively,
  and :math:`{\mathbf A}, {\mathbf b}` are constants.
  
  Args:
      inp (~nnabla.Variable): Input N-D array with shape (:math:`M_0 \times \ldots \times M_{B-1} \times D_B \times \ldots \times D_N`). Dimensions before and after base_axis are flattened as if it is a matrix.
      n_outmaps (:obj:`int` or :obj:`tuple` of :obj:`int`): Number of output neurons per data.
      base_axis (int): Dimensions up to `base_axis` are treated as the sample dimensions.
      w_init (:obj:`nnabla.initializer.BaseInitializer` or :obj:`numpy.ndarray`): Initializer for weight. By default, it is initialized with :obj:`nnabla.initializer.UniformInitializer` within the range determined by :obj:`nnabla.initializer.calc_uniform_lim_glorot`.
      b_init (:obj:`nnabla.initializer.BaseInitializer` or :obj:`numpy.ndarray`): Initializer for bias. By default, it is initialized with zeros if `with_bias` is `True`.
      fix_parameters (bool): When set to `True`, the weights and biases will not be updated.
      rng (numpy.random.RandomState): Random generator for Initializer.
      with_bias (bool): Specify whether to include the bias term.
  
  Returns:
      :class:`~nnabla.Variable`: :math:`(B + 1)`-D array. (:math:`M_0 \times \ldots \times M_{B-1} \times L`)f
code: def __call__(self, inp):
      return F.affine(inp, self.W, self.b, self.base_axis)
  
file_path: nnabla/python/src/nnabla/experimental/parametric_function_class/affine.py
imports: import nnabla
  import nnabla.functions
  import numpy
  from nnabla.initializer import calc_uniform_lim_glorot, ConstantInitializer, UniformInitializer
  from .module import Module
label_desc: Use image node_id 2 for calling the Affine obj's underlying member method code with example usage: obj.__call__(inp) and returns: F