code: def prelu(
      x,
      channel_shared=False,
      weights_init="zeros",
      trainable=True,
      restore=True,
      reuse=False,
      scope=None,
      name="PReLU",
  ):
      """PReLU.
  
      Parametric Rectified Linear Unit.
  
      Arguments:
          x: A `Tensor` with type `float`, `double`, `int32`, `int64`, `uint8`,
              `int16`, or `int8`.
          channel_shared: `bool`. Single weight is shared by all channels
          weights_init: `str`. Weights initialization. Default: zeros.
          trainable: `bool`. If True, weights will be trainable.
          restore: `bool`. Restore or not alphas.
          reuse: `bool`. If True and 'scope' is provided, this layer variables
              will be reused (shared).
          name: A name for this activation op (optional).
  
      Attributes:
          scope: `str`. This op scope.
          alphas: `Variable`. PReLU alphas.
  
      Returns:
          A `Tensor` with the same type as `x`.
  
      References:
          Delving Deep into Rectifiers: Surpassing Human-Level Performance
          on ImageNet Classification. He et al., 2014.
  
      Links:
          [http://arxiv.org/pdf/1502.01852v1.pdf]
          (http://arxiv.org/pdf/1502.01852v1.pdf)
  
      """
      if channel_shared:
          w_shape = (1,)
      else:
          w_shape = tflearn.utils.get_incoming_shape(x)[-1:]
  
      with tf.variable_scope(
          scope, default_name=name, values=[x], reuse=reuse
      ) as scope:
          W_init = initializations.get(weights_init)()
          alphas = va.variable(
              "alphas",
              shape=w_shape,
              initializer=W_init,
              restore=restore,
              trainable=trainable,
          )
  
          x = tf.nn.relu(x) + tf.multiply(alphas, (x - tf.abs(x))) * 0.5
  
      x.scope = scope
      x.alphas = alphas
  
      return x
  
imports: from __future__ import division, print_function, absolute_import
  import tensorflow.compat.v1
  import numpy
  import tflearn
  from .None import initializations
  from .None import variables
  from .utils import get_from_module
label_desc: Use image node_id 11 for calling a global function with example usage: prelu(x, channel_shared, weights_init, trainable, restore, reuse, scope, name) and returns: x