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】