【发布时间】:2025-12-05 19:20:06
【问题描述】:
我正在构建一个逐步生成符号的 LSTM 模型。任务是将模型训练到数据序列的某个点,然后在测试阶段使用训练后的模型处理序列的剩余部分——这些剩余部分在训练期间看不到。
对于这个任务,我正在尝试将训练阶段的最新状态重新用于后续的预测阶段(即,不要以干净的零状态开始预测,而是在事情被中断的地方继续进行排序训练)。
在这种情况下,我想知道如何最好地选择训练的 Batch 大小。
我的训练数据是一长串按时间排序的观察结果。如果该序列被分成 N 批进行训练,那么我的理解是状态张量在训练期间的形状为[N, Network_Size],在预测期间为[1, Network_Size]。所以对于预测,我只取[N, Network_Size] 张量的最后一个元素,它的形状是[1, Network_Size]。
这似乎在机制方面有效,但这意味着N 的值决定了原始状态的最后一个向量在训练期间看到了多少观察结果。
是否有确定如何选择 N 的最佳实践?网络的训练速度更快,批量更大,但我担心这样状态张量的最后一部分可能看不够。显然我正在尝试各种组合,但很好奇其他人是如何处理的。
此外,我还看到了一些示例,其中将此类参数(或单元大小/等)设置为 2 的幂(即 64、128 等)。与简单的 50/100/等相比,这背后有什么理论上的原因吗?还是只是一个古怪的选择?
【问题讨论】:
标签: machine-learning tensorflow lstm