我使用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
方法的速度。任何人都可以提供一些有关问题的信息吗?
答案 0 :(得分:3)
这很可能是生成器(fit_generator()
)问题。当使用生成器作为数据源时,必须在批处理结束时调用它。考虑使用多处理(workers > 1
)或更高的批处理大小(如果可能)重新访问生成器代码