我在 Theano 中使用 Keras 2.0.0。
我想更新每个时期之间的训练数据。我可以使用 nb_epochs=1 在 for 循环中完成它,但使用 on_epoch_end 回调会更优雅。
这是我的暂定代码,基于 Keras 1 示例(博客文章):
class callback_change_X_train(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs={}):
X_train = my_function_to_update_X_train(...)
self.model.training_data[0] = X_train
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎 self.model.training_data 不再存在。
非常感谢任何帮助!
我自己就遇到了这个问题,并使用该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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |