从张量列表中查找给定 ids
的嵌入。
用法
tf.nn.embedding_lookup(
params, ids, max_norm=None, name=None
)
参数
-
params
表示完整嵌入张量的单个张量,或除第一个维度外所有相同形状的张量列表,表示遵循"div" 分区策略的分片嵌入张量。 -
ids
类型为int32
或int64
的Tensor
包含要在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:]
。
相关用法
- Python tf.nn.embedding_lookup_sparse用法及代码示例
- Python tf.nn.experimental.stateless_dropout用法及代码示例
- Python tf.nn.erosion2d用法及代码示例
- Python tf.nn.elu用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.set_weights用法及代码示例
- Python tf.nn.dropout用法及代码示例
- Python tf.nn.gelu用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.set_weights用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.get_weights用法及代码示例
- Python tf.nn.local_response_normalization用法及代码示例
- Python tf.nn.scale_regularization_loss用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.add_loss用法及代码示例
- Python tf.nn.max_pool用法及代码示例
- Python tf.nn.RNNCellDropoutWrapper.set_weights用法及代码示例
- Python tf.nn.l2_loss用法及代码示例
- Python tf.nn.log_softmax用法及代码示例
- Python tf.nn.weighted_cross_entropy_with_logits用法及代码示例
- Python tf.nn.ctc_greedy_decoder用法及代码示例
- Python tf.nn.dilation2d用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.get_weights用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.embedding_lookup。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。