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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在TensorFlow嵌入层中更改input_length?相关的知识,希望对你有一定的参考价值。

我的第一层是嵌入层。大多数嵌入层都有固定的input_length,例如:句子的最大长度,像这样(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,如何更改模型?怎么称呼它?

答案

你不应该为每个句子改变input_length参数,你应该做的是定义一个MAXIMUM_SENTENCE_LENGTH常量,如果它们小于那个最大长度,你将用特殊值0填充你的所有句子,或者简单地切掉过多的单词他们超越了它。

然后,您可以使用mask_zero参数将其设置为True,以简单地屏蔽掉那些过多的0令牌,这样它们就不会影响模型的输出或训练期间的渐变反向传播。

查看此tutorial了解更多详情。

以上是关于如何在TensorFlow嵌入层中更改input_length?的主要内容,如果未能解决你的问题,请参考以下文章

Input_shape在自定义图层中为None

如何在 scikit 学习模型中使用 Tensorflow 嵌入?

如何使用 tensorflow 从 CNN 层中提取激活?

如何在 Tensorflow 2.x Keras 自定义层中使用多个输入?

如何更改 tensorflow 的 numpy 数组的 dtypes

如何在 Keras 中的预训练 InceptionResNetV2 模型的不同层中找到激活的形状 - Tensorflow 2.0