Tensorflow 在\u列\u批处理\u结束需要0.7秒,但生成器。\u获取项目\u只需要0.1秒。如何调试它?

Tensorflow 在\u列\u批处理\u结束需要0.7秒,但生成器。\u获取项目\u只需要0.1秒。如何调试它?,tensorflow,keras,tf.keras,Tensorflow,Keras,Tf.keras,我正在训练一个CNN模型,它需要一些复杂的输入处理。我使用keras.utils.sequence作为生成器。我在tf.data中找不到实现这一点的方法。我在Colab中使用tensorflow 2.3及其keras的内部实现 我在训练模型时得到以下警告 tensorflow:train\u batch\u end上的回调方法比批处理时间慢(批处理时间:0.2641s vstrain\u batch\u end上的回调方法时间:0.7211s)。检查你的回电 但是,我没有任何回电!所以我会想象时

我正在训练一个CNN模型,它需要一些复杂的输入处理。我使用
keras.utils.sequence
作为生成器。我在
tf.data
中找不到实现这一点的方法。我在Colab中使用tensorflow 2.3及其keras的内部实现

我在训练模型时得到以下警告

tensorflow:train\u batch\u end上的回调方法
比批处理时间慢(批处理时间:0.2641s vs
train\u batch\u end上的回调方法
时间:0.7211s)。检查你的回电

但是,我没有任何回电!所以我会想象时间只花在发电机里


如果I时间
x,y=trainGenerator[0]
,则只需0.1s。所以额外的0.6秒将去哪里?我尝试了tensorboard profiler,但我无法理解它。

我正在使用tf.data(甚至是普通产量生成器),但仍然会出现此错误。似乎只有TF2.3在你的情况下才抛出警告是错误的(它花费的时间比它声称的要少),还是真的花了那么长时间?因为在我的例子中,处理输入确实需要那么长的时间。然而,这是没有意义的。此外,它现在也出现在以前使用过的版本上,如TF2.1