code: def _unpack_to_bytes(byte_arr, num_weights, nbits):
      assert num_weights % 1 == 0
      num_weights = int(num_weights)
      bit_arr = _decompose_bytes_to_bit_arr(byte_arr.flatten().tolist())
      bit_arr = _np.array(bit_arr[: num_weights * nbits]).reshape(
          (num_weights, nbits)
      )
      expo = 2 ** _np.array(list(reversed(range(0, nbits))))
      byte_arr = _np.sum(bit_arr * expo, axis=1)
      return byte_arr
  
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 9 for calling a global function with example usage: _unpack_to_bytes(byte_arr, num_weights, nbits) and returns: byte_arr