class_docstr: Parametric Rectified Linear Unit gradient function.
code: def backward(self, indexes, grad_outputs):
      x, W, gy = self.get_retained_inputs()
      ggx, ggW = grad_outputs
  
      ggW = chainer.functions.broadcast_to(
          chainer.functions.reshape(ggW, self.extended_shape), x.shape
      )
      ggW *= self.cond < 0
  
      gxgy, gxW = PReLUFunctionGrad(
          self.cond, None, self.extended_shape
      ).apply((gy, W, ggx))
  
      ret = []
      if 0 in indexes:
          ret.append(gy * ggW)
      if 1 in indexes:
          ret.append(chainer.functions.sum(gxW, axis=self.reduce_axes))
      if 2 in indexes:
          ret.append(x * ggW + gxgy)
      return ret
  
imports: import numpy
  import chainer
  from chainer.backends import cuda
  from chainer import function_node
  from chainer.utils import type_check
label_desc: Use image node_id 5 for calling the PReLUFunctionGrad obj's underlying member method code with example usage: obj.backward(indexes, grad_outputs) and returns: ret