Keras 凯拉斯:我可以在培训后更改RNN的状态吗?

Keras 凯拉斯:我可以在培训后更改RNN的状态吗?,keras,recurrent-neural-network,tf.keras,Keras,Recurrent Neural Network,Tf.keras,如果我使用stateful=False构建并训练基于RNN的模型,我可以简单地执行(例如): 它是否如预期的那样在预测中发挥作用?我这样问是因为在其他情况下(例如学习率),暴露的参数是“装饰性的”,实际上不会影响行为。如果您的模型没有状态,则模型会在每个批次后重置状态变量。您可以创建一个有状态的模型,但在使用回调(model.reset_states after on_batch_end callback)进行预测的每个批次之后手动重置状态变量 另外,为什么要在训练后更改状态?我正在训练模型的完

如果我使用stateful=False构建并训练基于RNN的模型,我可以简单地执行(例如):


它是否如预期的那样在预测中发挥作用?我这样问是因为在其他情况下(例如学习率),暴露的参数是“装饰性的”,实际上不会影响行为。

如果您的模型没有状态,则模型会在每个批次后重置状态变量。您可以创建一个有状态的模型,但在使用回调(model.reset_states after on_batch_end callback)进行预测的每个批次之后手动重置状态变量


另外,为什么要在训练后更改状态?

我正在训练模型的完整序列,但在应用程序中,我将一次输入一个样本。我有点不清楚状态性在训练期间的作用,但我认为它会在批之间保持状态,这是我不想要的。确切地说,“stateful=True”允许您在批之间保持状态。否则,将在每个批次后重置。如果您想让模型的状态变量记住长期依赖关系,状态性非常有用。
model.layers[0].stateful = True