如何在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?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 scikit 学习模型中使用 Tensorflow 嵌入?
如何在 Tensorflow 2.x Keras 自定义层中使用多个输入?
如何更改 tensorflow 的 numpy 数组的 dtypes
如何在 Keras 中的预训练 InceptionResNetV2 模型的不同层中找到激活的形状 - Tensorflow 2.0