如何恢复Keras LSTM状态

时间:2017-04-10 13:24:33

标签: keras lstm

我有一个LSTM模型,当我处理批处理时,我想重置LSTM层的状态。然后在几个进程之后,我想恢复LSTM的原始状态(我在上面的几个进程中学到了新的权重) )并继续处理。我知道我可以使用reset_state()函数来重置LSTM状态。如何恢复LSTM状态?

提前致谢!

1 个答案:

答案 0 :(得分:1)

你不是很清楚你在问什么,但根据我的理解,你想用一组给定的权重来初始化LSTM。来自docs

  

关于在RNN中指定初始状态的注释

     

您可以通过调用RNN图层来指定RNN图层的初始状态   关键字参数initial_state。 initial_state的值应该是   是一个张量或张量的张量表示代表的初始状态   RNN层。

我还没想出如何使用顺序模型添加初始状态 但是你可以使用functional API

来做到这一点
X = np.array([[[1, 0],
              [1, 0],
              [1, 0],
              [1, 0]],

              [[1, 0],
              [1, 0],
              [1, 0],
              [1, 0]]]
              )

y = np.array([[1],
              [2]])

inp = Input(shape=(4, 2))
base = LSTM(10)
enc = base(inp, initial_state=[])
out = Dense(1, activation='softmax')(enc)
model = Model(inp, out)
model.compile(loss='mse', optimizer='adam')
model.fit(X, y)