tf.nn.embedding_lookup(tensor,id)这个函数一般用于通过输入input_x的值,来获取权重大矩阵里面的每个字的向量。
a = tf.Variable(tf.random_normal([3,5],7,1))
b = tf.Variable(tf.nn.embedding_lookup(a,[0,2,1,0]))
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(a.eval())
print(b.eval())
输出的结果是:
[[8.127014 6.635704 6.214539 6.260006 8.599776 ]
[6.6675673 7.7031364 7.4922285 5.4658527 6.449992 ]
[6.5353246 8.161758 5.4754076 6.515927 5.5366616]]
[[8.127014 6.635704 6.214539 6.260006 8.599776 ]
[6.5353246 8.161758 5.4754076 6.515927 5.5366616]
[6.6675673 7.7031364 7.4922285 5.4658527 6.449992 ]
[8.127014 6.635704 6.214539 6.260006 8.599776 ]]
自己已经测试,从这里可以看出,只要是声明的变量,就必须要给其初始化,函数第一个参数tensor a 已经给了其默认排序[0,1,2,3…a[0]]排序,第二个参数可以是一个数组,数组中的每个是tensor索引的位置