tf.contrib.layers.embed_sequence()

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维向量
'''

 

posted @ 2020-03-23 22:19  1直在路上1  阅读(698)  评论(0编辑  收藏  举报