code: def test_op_param_relu(operand, device_id, precision):
      dev = cntk_device(device_id)
      param_relu_f = np.vectorize(lambda x: 0.5 * x if x < 0 else x)
      param_relu_b = np.vectorize(lambda x: 0.5 if x < 0 else 1.0)
  
      t = AA(operand, dtype=PRECISION_TO_TYPE[precision])
      a = AA(np.ones_like(t) * 0.5, dtype=PRECISION_TO_TYPE[precision])
      alpha = constant(a, device=dev)
  
      expected_forward = [param_relu_f(t)]
      expected_backward = {"arg": [param_relu_b(t)]}
  
      from cntk import param_relu
  
      def prelu(x):
          return param_relu(alpha, x)
  
      _test_unary_op(
          precision,
          device_id,
          prelu,
          operand,
          expected_forward,
          expected_backward,
      )
  
imports: from __future__ import division
  import numpy
  import cntk
  import pytest
  from .ops_test_utils import unittest_helper, _test_unary_op, _test_binary_op, AA, precision, PRECISION_TO_TYPE, cntk_device
  from cntk.tests.test_utils import TOLERANCE_ABSOLUTE
  from cntk.internal.utils import eval
  from cntk.internal import sanitize_dtype_cntk
  from ..None import constant
  from cntk.variables import Parameter, Constant
label_desc: Use image node_id 20 for calling a global function with example usage: test_op_param_relu(operand, device_id, precision) and returns: param_relu