我正在设计一个词汇表层约为4000的嵌入层,大多数训练示例的长度都小于10。但是有些示例的长度为100甚至可能是数百,所以我想避免零填充每个示例长度为100+,以便在所有示例中保持恒定的输入长度。
为了解决这个问题,我只想基于批次内的最大长度填充,这样几乎所有批次的输入长度都只有〜10,只有少数批次具有很多填充。如何在每个批次中以不同的输入长度将其加载到嵌入层?
答案 0 :(得分:0)
一种可能的方法是将input_length参数设置为None。但是,如果要在此层之后使用“密集”和“展平”层,则它们可能不起作用。要了解更多信息,请访问keras doc page
...这个参数是 如果要连接展平然后密集层,则需要 上游(没有它,密集输出的形状不能是 计算)
model = keras.models.Sequential(
[
keras.layers.Embedding(voc_size, embedding_dim, input_length=None)
]
)
现在模型可以接受可变长度的序列了。