code: def test_prelu(x, w, axis, weight_reshape):
      X = te.placeholder((x), name="X")
      W = te.placeholder((w), name="W")
      x_np = np.random.uniform(
          low=-1.0, high=1.0, size=get_const_tuple(X.shape)
      ).astype(X.dtype)
      w_np = np.random.uniform(
          low=-1.0, high=1.0, size=get_const_tuple(W.shape)
      ).astype(W.dtype)
  
      def _prelu_numpy(x, W):
          return (x < 0) * (x * W.reshape(weight_reshape)) + (
              x >= 0
          ) * x
  
      B = topi.nn.prelu(X, W, axis)
      s = te.create_schedule([B.op])
  
      dev = tvm.cpu(0)
      x_tvm = tvm.nd.array(x_np, dev)
      w_tvm = tvm.nd.array(w_np, dev)
  
      b = tvm.nd.array(
          np.zeros(get_const_tuple(X.shape), dtype=B.dtype), dev
      )
      # Building with the CSE pass disabled
      with tvm.transform.PassContext(
          opt_level=3, disabled_pass=["tir.CommonSubexprElimTIR"]
      ):
          foo = tvm.build(s, [X, W, B], "llvm", name="prelu")
      foo(x_tvm, w_tvm, b)
      out_np = _prelu_numpy(x_np, w_np)
      tvm.testing.assert_allclose(b.numpy(), out_np, rtol=1e-5)
  
file_path: tvm/tests/python/topi/test_topi_relu.py
imports: import sys
  import os
  import numpy
  import tvm
  from tvm import te
  from tvm import topi
  import tvm.topi.testing
  from tvm.topi.utils import get_const_tuple
  from tvm.contrib.nvcc import have_fp16
  import pytest
  import tvm.testing
label_desc: Use image node_id 3 for calling a global function with example usage: test_prelu(x, w, axis, weight_reshape) and returns: unknown