如何恢复 Keras LSTM 状态
How to restore Keras LSTM state
我有一个 LSTM 模型,当我处理一批时,我想重置 LSTM 的状态 layer.Then 经过几次处理,我想恢复 LSTM 的原始状态(用我学到的新权重在以上几个过程中)并继续处理。我知道我可以使用 reset_state()
函数来重置 LSTM 状态。如何恢复 LSTM 状态?
你问的不是很清楚,但根据我的理解,你想用一组给定的权重初始化 LSTM。来自 docs:
Note on specifying initial states in RNNs
You can specify the initial state of RNN layers by calling them with
the keyword argument initial_state. The value of initial_state should
be a tensor or list of tensors representing the initial state of the
RNN layer.
我还没有想出如何使用顺序模型添加初始状态
但这是使用 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)
我有一个 LSTM 模型,当我处理一批时,我想重置 LSTM 的状态 layer.Then 经过几次处理,我想恢复 LSTM 的原始状态(用我学到的新权重在以上几个过程中)并继续处理。我知道我可以使用 reset_state()
函数来重置 LSTM 状态。如何恢复 LSTM 状态?
你问的不是很清楚,但根据我的理解,你想用一组给定的权重初始化 LSTM。来自 docs:
Note on specifying initial states in RNNs
You can specify the initial state of RNN layers by calling them with the keyword argument initial_state. The value of initial_state should be a tensor or list of tensors representing the initial state of the RNN layer.
我还没有想出如何使用顺序模型添加初始状态 但这是使用 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)