【发布时间】:2018-03-07 21:06:58
【问题描述】:
我使用 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]
据我在文档中看到的,此方法仅在纪元结束时调用,因此它不会减慢on_batch_end 方法的速度。任何人都可以提供一些有关问题的信息吗?
【问题讨论】:
-
你是否使用了一个生成器,它可能会注册一个隐式回调。
-
@briantyler,是的,我确实使用了生成器。它相当慢(正在交付从文件夹中随机选择的一批图像)。但是你是说生成器被注册为“批量结束”吗?
-
我只是在推测,不过似乎有道理。
-
解决办法是什么?
-
@IsaacSim 没有解决方案。该消息令人困惑,实际上它与生成器(正在挑选文件进行训练)比模型训练慢有关。我设法通过重写它稍微加快了速度 + 我开始使用更大的模型,每个批次的训练时间更长,所以消息消失了
标签: python tensorflow machine-learning callback keras