使用负载训练权重与填充来预测不同长度的 LSTM

问题描述 投票:0回答:1

假设我已经训练了用于字母预测的 LSTM 模型。

我使用无状态 LSTM 进行训练,因为它是 keras 中的默认设置。

在训练期间,输入输出对将如下所示,其中输入

window_size=3
返回一个时间步长:

A, B, C -> D
B, C, D -> E
C, D, E, -> F

然后我保存了训练模型的权重

.save_weights()
,并重新实例化了一个具有相同架构但不同
window_size=2
的新模型,最后将训练好的权重重新加载到该新模型中,它已成功加载,尽管
skip_mismatch=False

我使用此输入输出对为模型提供预测:

A, B -> C
B, C -> D
C, D -> E

权重已成功加载,但我担心使用

window_size=3
window_size=2
重新加载模型之间是否确实提供了不同的性能。具体来说,我在
axis=1
讨论 keras 中的 LSTM。换句话说,训练和推理时的时间步数是不同的。

那么,我应该关心它的性能吗?如果不是(这意味着具有相同权重、不同窗口大小的两个模型具有相同的性能),为什么仍然需要填充?

python tensorflow machine-learning keras lstm
1个回答
0
投票

是的,您应该关心性能差异。原因如下:

LSTM 模型对序列长度(窗口大小)敏感,因为它们学习这些序列的时间依赖性。更改窗口大小会影响模型解释数据和学习模式的方式。

此外,如果您使用窗口大小 3 训练模型,然后在推理过程中使用窗口大小 2,则模型可能无法获得最佳性能。这是因为它在训练期间学习的模式和依赖关系基于长度为 3 的序列,并且在推理期间使用较短的序列可能会破坏这些学习的模式。

此外,Padding 用于确保所有序列具有相同的长度,这对于 LSTM 模型中的批量处理至关重要。如果更改窗口大小,填充有助于保持输入形状的一致性,但不能完全减轻更改序列长度对模型性能的影响。

总体而言,模型的性能可能会随着窗口大小的不同而变化。为了获得最佳性能,最好在训练和推理中使用相同的窗口大小。

© www.soinside.com 2019 - 2024. All rights reserved.