导航

tf.nn.embedding_lookup

Posted on 2018-12-05 20:27  wzd321  阅读(577)  评论(0编辑  收藏  举报
tf.nn.embedding_lookup(params, ids, partition_strategy=’mod’, name=None, validate_indices=True, max_norm=None)

参数说明:

params: 表示完整的嵌入张量,或者除了第一维度之外具有相同形状的P个张量的列表,表示经分割的嵌入张量。

ids: 一个类型为int32或int64的Tensor,包含要在params中查找的id。每个元素将代表要在params中取的每个元素的第0维的逻辑index,这个逻辑index是由partition_strategy来指定的。

partition_strategy: 指定分区策略的字符串,如果len(params)> 1,则相关,当前支持“div”和“mod”, 默认为“mod”。

name: 操作名称(可选)。

validate_indices: 是否验证收集索引。

max_norm: 如果不是None,嵌入值将被l2归一化为max_norm的值。

例子:

在词向量训练中

with tf.device("/cpu:0"):
    embedding = tf.get_variable("embedding",[vocab_size,size])
    inputs = tf.nn.embedding_lookup(embedding,input_data)

上面的代码定义的embedding表示有vocab_size(int)个词,每个词被嵌入的纬度为size(int),最终得到的inputs就是输入向量input_data映射好的词向量。例如input_data的形状为【batch_size,ndim】,那么inputs的形状为【batch_size,ndim,size】