code: def build_quant_conv_layer(
      self,
      W=None,
      quantization_type="linear",
      nbits=8,
      quant_scale=None,
      quant_bias=None,
      quant_lut=None,
      output_channels=2,
  ):
      input_features = [("data", datatypes.Array(1, 2, 2))]
      output_features = [("out", datatypes.Array(2, 1, 1))]
      builder = NeuralNetworkBuilder(input_features, output_features)
      builder.add_convolution(
          name="conv",
          kernel_channels=1,
          output_channels=output_channels,
          height=2,
          width=2,
          stride_height=1,
          stride_width=1,
          border_mode="valid",
          groups=1,
          W=W,
          b=None,
          has_bias=False,
          input_name="data",
          output_name="out",
          quantization_type=quantization_type,
          nbits=nbits,
          quant_scale=quant_scale,
          quant_bias=quant_bias,
          quant_lut=quant_lut,
      )
      return MLModel(builder.spec, compute_units=ComputeUnit.CPU_ONLY)
  
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 1 for calling the BasicNumericCorrectnessTest_1014NewLayers obj's underlying member method code with example usage: obj.build_quant_conv_layer(W, quantization_type, nbits, quant_scale, quant_bias, quant_lut, output_channels) and returns: MLModel