gpt4 book ai didi

python - 如何在keras训练期间调用reset_states()?

转载 作者:行者123 更新时间:2023-11-30 09:20:06 25 4
gpt4 key购买 nike

我有顺序数据..

  • X的输入维度都相同
  • X 之间 x 的序列长度不同

我正在使用 LSTM,因此我想为每个 x 数据(x1x2)调用 Reset_states。x1x2 是独立的数据,因此当我在 x1 之后测试 x2 时,我必须重置 LSTM 的历史记录。

我的代码在这里。我应该使用stateful选项吗?

# input dimension is two
# but data length is differenct between x1 and y1
x1 = [[1,2],[3,3],[2,1],[2,4]] # x1 length == 4
y1 = [2,3,2,1]

x2 = [[3,2], [2,1]] # x2 length == 2
y2 = [2,4]

input_dim = 2
max_len = 4 # max(len(x1), len(x2)
max_y = 4 # y -> (1,2,3,4)

trainX = [x1, x2]
trainY = [y1, y2]

m = Sequential()
m.add(LSTM(128,
input_shape=(max_len, input_dim),
activation='tanh',
return_sequences=True))
m.add(TimeDistributed(Dense(max_y, activation='softmax')))
m.compile(...)
m.fit(trainX, trainY, nb_epoch=10)

已编辑

我找到了一个有状态的 LSTM 示例。但它每个纪元都会调用reset_states()。我想要做的是调用每个xhttps://github.com/fchollet/keras/blob/aff40d800891799dc9ed765617fcbfa665349d0d/examples/stateful_lstm.py

最佳答案

您引用的链接使用 fit 函数和 epochs = 1。我认为您可以使用 train_on_batch() 或使用 fit() 函数与 on_batch_end() 回调。这样,您可以在每个 x 之后重置状态(通过设置适当的批量大小)。

关于python - 如何在keras训练期间调用reset_states()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42826456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com