我有一个有状态的LSTM定义为顺序模型:
model = Sequential()
model.add(LSTM(..., stateful=True))
...
后来,我将其用作函数模型:
input_1, input_2 = Input(...), Input(...)
output_1 = model(input_1)
output_2 = model(input_2) # Is the state from input_1 preserved?
当我们再次input_1
input_2
应用model
时,状态是否保留?如果是,如何在两次调用之间重置模型状态?
以下说明 从此链接和 Keras 实现中在 RNN 中使用有状态性,如果
:- 两个模型中的
batch_size
是相同的(由于 Keras 计算内部状态的方式,这很重要)。 - 您将首先构建和编译这两个模型,然后使用它们 - 出于某种原因,Keras 在层
build
期间重置内部状态(您可以通过查找reset_states
方法在此处进行检查)。
可以在要重置状态的每个循环层上调用reset_states
方法。