我正在使用Keras 2.0.0和Theano。
我想更新每个纪元之间的训练数据。我可以使用nb_epochs = 1在for循环中完成它,但使用on_epoch_end回调它会更优雅。
这是我的试验性代码,基于Keras 1示例(blog post):
{{1}}
不幸的是,似乎self.model.training_data不再存在了。
非常感谢任何帮助!
答案 0 :(得分:0)
我自己遇到了这个问题,并使用model.fit_generator
方法而不是标准的fit
方法解决了。您可以通过这种方式在每个时期对数据进行一些修改。我不确定您是否可以通过这种方式访问model
对象本身,但是对于我的问题,我只需要沿一个内轴对数据进行混洗。
示例代码:
def shuffle_gen(x_train, y_train):
while True:
shuffle_inner_axis(x_train, y_train)
for b_i in range(steps_per_epoch):
yield(x_train[b_i * batch_size:(b_i_1) * batch_size],
y_train[b_i * batch_size:(b_i_1) * batch_size])
return
model.fit_generator(shuffle_gen(x_train, y_train), steps_per_epoch, n_epochs)