code: def get_embeddings(init_embed, padding_idx=None):
      r"""
      根据输入的 ``init_embed`` 返回 ``Embedding`` 对象。
  
      :param init_embed: 支持以下几种输入类型：
  
              - ``tuple(num_embedings, embedding_dim)``，即 embedding 的大小和每个词的维度，此时将随机初始化一个 :class:`torch.nn.Embedding` 实例；
              - :class:`torch.nn.Embedding` 或 **fastNLP** 的 ``Embedding`` 对象，此时就以传入的对象作为 embedding；
              - :class:`numpy.ndarray` ，将使用传入的 ndarray 作为 Embedding 初始化；
              - :class:`torch.Tensor`，此时将使用传入的值作为 Embedding 初始化；
  
      :param padding_idx: 当传入 :class:`tuple` 时，``padding_idx`` 有效
      :return:
      """
      if isinstance(init_embed, tuple):
          res = nn.Embedding(
              num_embeddings=init_embed[0],
              embedding_dim=init_embed[1],
              padding_idx=padding_idx,
          )
          nn.init.uniform_(
              res.weight.data,
              a=-np.sqrt(3 / res.weight.data.size(1)),
              b=np.sqrt(3 / res.weight.data.size(1)),
          )
      elif isinstance(init_embed, nn.Module):
          res = init_embed
      elif isinstance(init_embed, torch.Tensor):
          res = nn.Embedding.from_pretrained(init_embed, freeze=False)
      elif isinstance(init_embed, np.ndarray):
          init_embed = torch.tensor(init_embed, dtype=torch.float32)
          res = nn.Embedding.from_pretrained(init_embed, freeze=False)
      else:
          raise TypeError(
              "invalid init_embed type: {}".format((type(init_embed)))
          )
      return res
  
imports: import numpy
  from ...envs.imports import _NEED_IMPORT_TORCH
  from ...core.vocabulary import Vocabulary
label_desc: Use image node_id 2 for calling a global function with example usage: get_embeddings(init_embed, padding_idx) and returns: res