code: def test_linear_quant_convolution_8bit_vector_scalebias(self):
      W = np.ones((2, 2, 1, 2), dtype=np.uint8)
      W[:, :, :, 1] = 2
      mlmodel = self.build_quant_conv_layer(
          W=W.flatten().tobytes(),
          quantization_type="linear",
          nbits=8,
          quant_scale=[4.0, 5.0],
          quant_bias=[-2.0, 1.0],
      )
      data = np.ones((1, 2, 2))
      data_dict = {"data": data}
      out = mlmodel.predict(data_dict)["out"]
      expected_out = np.reshape(np.array([8, 44]), (2, 1, 1))
      self.assertTrue(np.allclose(out, expected_out))
  
imports: import numpy
  import pytest
  import unittest
  import coremltools
  from coremltools import ComputeUnit
  from coremltools.converters.mil.mil.types.type_mapping import np_val_to_py_type
  from coremltools.models import MLModel, datatypes
  from coremltools.models.neural_network import NeuralNetworkBuilder
  from coremltools.models.neural_network.quantization_utils import _convert_array_to_nbit_quantized_bytes, quantize_weights
  from coremltools.models.utils import _is_macos, _macos_version
label_desc: Use image node_id 3 for calling the BasicNumericCorrectnessTest_1014NewLayers obj's underlying member method code with example usage: obj.test_linear_quant_convolution_8bit_vector_scalebias() without return types