code: def quantized_embedding(context, node):
      packed_params = context.torch_graph.params[node.inputs[0]]
      qweight = _torch.ops.quantized.embedding_bag_unpack(packed_params)
      dequant_weights = _dequantized_weight(qweight)
      indices = context[node.inputs[1]]
  
      if len(node.inputs) >= 3:
          logger.warning(
              "Core ML quantized embedding (gather) layer does not support any "
              "inputs besides the weights and indices. Those given "
              "will be ignored."
          )
  
      if isinstance(indices, tuple):
          # Sometimes inputs will be a tuple, so handle that correctly.
          assert len(indices) == 1
          indices = indices[0]
      indices = mb.cast(x=indices, dtype="int32")
  
      #  Changing the axis from 0 is not an option in torch, so we don't expose it
      gather = mb.gather(
          x=dequant_weights, indices=indices, name=node.name
      )
      context.add(gather)
  
imports: import numpy
  import torch
  from coremltools import _logger
  from coremltools.converters.mil.mil import Builder
  from coremltools.converters.mil.mil import Var, types
  from .ops import NUM_TO_TORCH_DTYPE, _create_linear_layer, _get_inputs, promote_input_dtypes
  from .torch_op_registry import register_torch_op
label_desc: Use image node_id 19 for calling a global function with example usage: quantized_embedding(context, node) without return types