class_docstr: Quantized layer selector allowing the user to specify some types of
  layers to skip during quantization process and the minimum size parameters
  in quantized convolution layers.
  
  Examples
  --------
  .. highlight:: python
  .. code-block:: python
  
      from coremltools.models.neural_network.quantization_utils import AdvancedQuantizedLayerSelector
      selector = AdvancedQuantizedLayerSelector(
              skip_layer_types=['batchnorm', 'bias', 'depthwiseConv'],
              minimum_conv_kernel_channels=4,
              minimum_conv_weight_count=4096)
      quantized_model = quantize_weights(model, 8, selector=selector)
class_docstr_tok: ["Quantized","layer","selector","allowing","the","user","to","specify","some","types","of","layers","to","skip","during","quantization","process","and","the","minimum","size","parameters","in","quantized","convolution","layers",".","Examples","--","--","--","--","..","highlight",":",":","python","..","code-block",":",":","python","from","coremltools.models.neural_network.quantization_utils","import","AdvancedQuantizedLayerSelector","selector","=","AdvancedQuantizedLayerSelector","(","skip_layer_types=","[","'batchnorm","'",",","'bias","'",",","'depthwiseConv","'","]",",","minimum_conv_kernel_channels=4",",","minimum_conv_weight_count=4096",")","quantized_model","=","quantize_weights","(","model",",","8",",","selector=selector",")"]
code: def __init__(
      self,
      skip_layer_types=[],
      minimum_conv_kernel_channels=4,
      minimum_conv_weight_count=4096,
  ):
      super(AdvancedQuantizedLayerSelector, self).__init__()
      self.skip_layer_types = skip_layer_types
  
      # Error checking
      invalid_skip_types = []
      for lt in skip_layer_types:
          if lt not in self.quantizable_layer_types:
              invalid_skip_types.append(lt)
      if len(invalid_skip_types) > 0:
          err_msg = "Skip quantization layer types ({}) is not supported.\n".format(
              ",".join(invalid_skip_types)
          )
          err_msg += "Supported quantization layers: ({})".format(
              ",".join(self.quantizable_layer_types)
          )
          raise ValueError(err_msg)
  
      self.minimum_conv_kernel_channels = minimum_conv_kernel_channels
      self.minimum_conv_weight_count = minimum_conv_weight_count
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import numpy
  from sys import stdout
  from os import listdir
  from six import string_types
  from .optimization_utils import _optimize_nn
  from coremltools.models import _SUPPORTED_QUANTIZATION_MODES, _QUANTIZATION_MODE_DEQUANTIZE, _QUANTIZATION_MODE_LOOKUP_TABLE_LINEAR, _QUANTIZATION_MODE_LOOKUP_TABLE_KMEANS, _QUANTIZATION_MODE_CUSTOM_LOOKUP_TABLE, _QUANTIZATION_MODE_LINEAR_QUANTIZATION, _QUANTIZATION_MODE_LINEAR_SYMMETRIC, _LUT_BASED_QUANTIZATION
  from ..utils import _get_nn_layers, _wp_to_fp16wp, _get_model, _macos_version
  from ..._deps import _HAS_SKLEARN
  from ...None import _MINIMUM_QUANTIZED_MODEL_SPEC_VERSION, _MINIMUM_FP16_SPEC_VERSION, _SPECIFICATION_VERSION_IOS_14
label_desc: Use image node_id 1 to create a new AdvancedQuantizedLayerSelector object from inherited base classes: QuantizedLayerSelector with example: obj = AdvancedQuantizedLayerSelector(skip_layer_types, minimum_conv_kernel_channels, minimum_conv_weight_count)