如何在TensorFlow嵌入层中更改input_length?

时间:2019-04-14 10:53:37

标签: tensorflow machine-learning keras deep-learning embedding

我的第一层是嵌入层。大多数嵌入层具有固定的input_length,例如:句子的最大长度,例如this(https://www.tensorflow.org/alpha/tutorials/sequences/word_embeddings):

embedding_dim=16

model = tf.layers.Embedding(vocab_size, embedding_dim, input_length=maxlen)
y=model(x)

但是数据集中句子的长度不同,我想更改嵌入每个句子的input_length,如何更改模型?怎么称呼?

1 个答案:

答案 0 :(得分:0)

您不应该为每个句子都更改input_length参数,您应该定义一个MAXIMUM_SENTENCE_LENGTH常量,如果所有句子都小于该最大长度,则用特殊值0填充所有句子,或者只需删除多余的单词,如果他们超过了。

然后,您可以通过将mask_zero参数设置为True来使用它,以简单地掩盖掉那些过多的0个标记,这样它们就不会影响模型的输出或训练过程中的梯度反向传播。

选中此tutorial以获得更多详细信息。