code: def test_fullyconnected(shape, out_channels, dtype):
      """Compare Fully Connected output with TVM."""
  
      np.random.seed(0)
      iinfo = np.iinfo(dtype)
      data_min = iinfo.min
      data_max = iinfo.max
  
      inputs = {
          "a": tvm.nd.array(
              np.random.randint(
                  data_min, data_max + 1, size=shape, dtype=dtype
              )
          ),
      }
      outputs = []
  
      input_zp = np.random.randint(data_min, data_max)
      input_sc = np.random.random() * 2
      kernel_zp = np.random.randint(data_min, data_max)
      kernel_sc = np.random.random() * 2
      output_zp, output_sc = tei.get_conv2d_qnn_params(
          dtype,
          input_zp,
          input_sc,
          kernel_zp,
          kernel_sc,
          shape[0],
          shape[1],
          1,
      )
      model, params = _get_model(
          shape,
          (out_channels, shape[1]),
          input_zp,
          input_sc,
          kernel_zp,
          kernel_sc,
          output_zp,
          output_sc,
          dtype,
      )
      for npu in [False, True]:
          mod = tei.make_module(model, params)
          outputs.append(
              tei.build_and_run(mod, inputs, 1, params, npu=npu)
          )
      tei.verify(outputs, dtype, 1)
  
file_path: tvm/tests/python/contrib/test_ethosn/test_fullyconnected.py
imports: import numpy
  import pytest
  import tvm
  from tvm import relay
  from tvm.testing import requires_ethosn
  from .None import infrastructure
label_desc: Use image node_id 2 for calling a global function with example usage: test_fullyconnected(shape, out_channels, dtype) without return types