code: def get_funcs(
      data_shape,
      data_dtype,
      kernel_shape,
      kernel_dtype,
      input_zero_point,
      kernel_zero_point,
      input_scale,
      kernel_scale,
      kernel_size,
      padding,
      strides,
      dilation,
      data_layout,
      kernel_layout,
      out_dtype,
      groups=1,
      channels=None,
  ):
      data = relay.var("data", shape=data_shape, dtype=data_dtype)
      kernel = relay.var(
          "kernel", shape=kernel_shape, dtype=kernel_dtype
      )
  
      ref_func = get_ref_func(
          data,
          kernel,
          input_zero_point,
          kernel_zero_point,
          input_scale,
          kernel_scale,
          kernel_size,
          padding,
          strides,
          dilation,
          data_layout,
          kernel_layout,
          out_dtype,
          groups,
          channels,
      )
      ref_func = run_infer_type(ref_func)
      ref_func = tvm.IRModule.from_expr(ref_func)
      qnn_func = get_qnn_func(
          data,
          kernel,
          input_zero_point,
          kernel_zero_point,
          input_scale,
          kernel_scale,
          kernel_size,
          padding,
          strides,
          dilation,
          data_layout,
          kernel_layout,
          out_dtype,
          channels,
          groups,
      )
  
      return (ref_func, qnn_func)
  
imports: import tvm
  from tvm import te
  import numpy
  from tvm import relay
  from tvm.relay import transform
  from tvm.relay.testing import run_infer_type
  from tvm.contrib import graph_executor
  from tvm.relay.testing.temp_op_attr import TempOpAttr
label_desc: Use image node_id 4 for calling a global function with example usage: get_funcs(data_shape, data_dtype, kernel_shape, kernel_dtype, input_zero_point, kernel_zero_point, input_scale, kernel_scale, kernel_size, padding, strides, dilation, data_layout, kernel_layout, out_dtype, groups, channels) and returns: ref_func,  qnn_func