调用有状态 LSTM 作为函数模型



我有一个有状态的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 中使用有状态性,如果

  1. 两个模型中的batch_size是相同的(由于 Keras 计算内部状态的方式,这很重要)。
  2. 您将首先构建和编译这两个模型,然后使用它们 - 出于某种原因,Keras 在层build期间重置内部状态(您可以通过查找reset_states方法在此处进行检查)。
如果要重置状态,

可以在要重置状态的每个循环层上调用reset_states方法。

最新更新