tf.nn.embedding_lookup(
params,
ids,
partition_strategy=’mod’,
name=None,
validate_indices=True,
max_norm=None
)
这个函数的意思就是按照ids查找params里面的vector然后输出。
比如:
import numpy as np import tensorflow as tf params = np.identity(5) print(params)
params是一个5x5的矩阵。
[[1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.] [0. 0. 1. 0. 0.] [0. 0. 0. 1. 0.] [0. 0. 0. 0. 1.]]
ids是3,2,1。
ids = [3,2,1] out = tf.nn.embedding_lookup(params,ids) sess = tf.InteractiveSession() print(sess.run(out))
那就会返回params的第三个,第二个,第一个vector组成matrix。
[[0. 0. 0. 1. 0.] [0. 0. 1. 0. 0.] [0. 1. 0. 0. 0.]]
如果ids2 = [[0,2],[3,1],[4,2]],那么就会返回:
[[[1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.]] [[0. 0. 1. 0. 0.] [0. 1. 0. 0. 0.]] [[0. 0. 0. 0. 1.] [0. 0. 1. 0. 0.]]]
文章来源: tf.nn.embedding_lookup