import numpy as np
import tensorflow as tf
vocab_size=10000
embedding_size=100
#随机产生10个整型数,取值范围是(0,9]
encoder_inputs = np.random.randint(10, size=10)
print(encoder_inputs)
embedding = tf.get_variable('embedding', [vocab_size, embedding_size])
print('embedding.shape=',embedding.shape)
#将10个10000维的数嵌入到100维
encoder_inputs_embedded = tf.nn.embedding_lookup(embedding, encoder_inputs)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
embedded = sess.run(encoder_inputs_embedded)
print('embedded.shape=', embedded.shape)
结果:
[3 4 9 2 1 6 9 0 2 3]
embedding.shape= (10000, 100)
embedded.shape= (10, 100)
注意:get_variable方法如果再次运行,会报错。需要重启kernel. 另外,需要运行
sess.run(tf.global_variables_initializer())
将全局变量初始化。