当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.nn.embedding_lookup用法及代码示例


从张量列表中查找给定 ids 的嵌入。

用法

tf.nn.embedding_lookup(
    params, ids, max_norm=None, name=None
)

参数

  • params 表示完整嵌入张量的单个张量,或除第一个维度外所有相同形状的张量列表,表示遵循"div" 分区策略的分片嵌入张量。
  • ids 类型为 int32int64Tensor 包含要在 params 中查找的 ID。
  • max_norm 如果不是 None ,则每个嵌入在其 l2-norm 大于此值时被剪裁。
  • name 操作的名称(可选)。

返回

  • A Tensor与中的张量具有相同的类型params.

    例如,如果 params 是一个 5x2 矩阵:

    [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

    或矩阵列表:

    params[0]:[[1, 2], [3, 4]]
    params[1]:[[5, 6], [7, 8]]
    params[2]:[[9, 10]]

    ids 是:

    [0, 3, 4]

    输出将是一个 3x2 矩阵:

    [[1, 2], [7, 8], [9, 10]]

抛出

  • ValueError 如果params 为空。

此函数用于对 params 中的张量列表执行并行查找。它是 tf.gather 的泛化,其中 params 被解释为大嵌入张量的分区。

如果 len(params) > 1 ,则 ids 的每个元素 id 根据 "div" 分区策略在 params 的元素之间进行分区,这意味着我们以连续的方式将 id 分配给分区。例如,13 个 id 被分成 5 个分区:[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]]

如果 id 空间不均分分区数,那么前(max_id + 1) % len(params) 个分区中的每一个都会被分配一个多一个 id。

查找的结果被连接成一个密集的张量。返回的张量具有形状 shape(ids) + shape(params)[1:]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.embedding_lookup。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。