def METHOD_NAME(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)