tf.contrib.layers.embed_sequence()函数
一般用于Seq2Seq网络,可完成对输入序列数据的嵌入工作。一般只需给出前三个参数。
embed_sequence(
ids, # 输入的形状为[batch_size, max_seq_len]
vocab_size=None, # 输入数据的总词汇量,不重复的词的个数
embed_dim=None, # 嵌入矩阵的维度大小
unique=False,
initializer=None,
regularizer=None,
trainable=True,
scope=None,
reuse=None
)
例子
import tensorflow as tf
batch = 2
sequence_length = 5
ids = [[1,2,3,4,5],[6,7,8,9,10]]
vocab_size =32
embed_dim = 10
a = tf.contrib.layers.embed_sequence(ids=ids,vocab_size=vocab_size, embed_dim=10)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
l = sess.run(a)
print(l.shape)
输出是尺寸为[batch_size,sequence_length ,embed_dim]的三阶张量,相当于初始化每个词向量。
我们会得到一个2 x 5 x 10的输出,其中ids 中的每个数字都被embed成了一个10维向量