code: def prelu(inp, base_axis=1, shared=True, fix_parameters=False):
      
      shape = tuple() if shared else (inp.shape[base_axis],)
      w = get_parameter_or_create("slope", shape,
                                  ConstantInitializer(-1), True, not fix_parameters)
      return F.prelu(inp, w, base_axis)
docs: Parametrized Rectified Linear Unit function defined as
  
      .. math::
          y_i = \max(0, x_i) + w_i \min(0, -x_i)
  
      where negative slope :math:`w` is learned and can vary across channels (an
      axis specified with base_axis). Weights are initialized with :math:`-1`.
  
      Args:
          x(~nnabla.Variable): N-D array as input
          base_axis(int): Dimensions up to base_axis is treated as sample dimension.
          shared(bool): Use shared weight value or not
          fix_parameters (bool): When set to `True`, the negative slope values
              will not be updated.
  
      Returns:
          ~nnabla.Variable: N-D array.