Keras - 方法on_batch_end很慢,但我只有回调才是检查点

时间:2018-03-07 21:06:59

标签: python tensorflow machine-learning callback keras

我使用TensorFlow后端建立了一个使用keras的网络。

当我训练我的网络时,我经常会收到消息:

UserWarning: Method on_batch_end() is slow compared to the batch update (0.195523). Check your callbacks.
  % delta_t_median)

问题是我的网络只设置了检查点回调:

checkpoint = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint]

据我在文档中看到,此方法仅在epoch end上调用,因此它不能减慢on_batch_end方法的速度。任何人都可以提供一些有关问题的信息吗?

1 个答案:

答案 0 :(得分:3)

这很可能是生成器(fit_generator())问题。当使用生成器作为数据源时,必须在批处理结束时调用它。考虑使用多处理(workers > 1)或更高的批处理大小(如果可能)重新访问生成器代码