Performance TensorFlow native、tf.keras和急切执行时间

Performance TensorFlow native、tf.keras和急切执行时间,performance,tensorflow,Performance,Tensorflow,我试图比较在本机tensorflow中实现的同一个模型的运行时间、急切执行和tf.keras。这个模型是针对一个问答任务的,我已经测试了两种选择——只提供包含答案的句子,以及提供整个上下文 200多个时代的训练结果相当奇怪,我不知道如何解释它们 保留所有句子的情况: tf:704.18秒 tf.keras:1235.81秒 急切:17057.66秒 一句话的情况: tf:94.56秒 tf.keras:36.48秒 急切:252.08秒 通常可以从数字上说,当数据集大小增加时,TF pu

我试图比较在本机tensorflow中实现的同一个模型的运行时间、急切执行和tf.keras。这个模型是针对一个问答任务的,我已经测试了两种选择——只提供包含答案的句子,以及提供整个上下文

200多个时代的训练结果相当奇怪,我不知道如何解释它们

  • 保留所有句子的情况:
    • tf:704.18秒
    • tf.keras:1235.81秒
    • 急切:17057.66秒
  • 一句话的情况:
    • tf:94.56秒
    • tf.keras:36.48秒
    • 急切:252.08秒
  • 通常可以从数字上说,当数据集大小增加时,TF pure比TF.keras快,但对于小数据输入,TF.keras更快。但为什么会这样呢?我无法解释为什么渴望如此缓慢。。。我知道它不会在后台构建流程图,因此不会显式地进行优化,但差别太大了


    您可以在此处找到我的实现:。我非常有兴趣讨论这种基准测试是否有意义,以及如何使其更加一致。

    很有意思的是,Earge的速度如此之慢。您是否尝试过使用python的profiler对其进行评测?在这种情况下,您可能正在将每次迭代的数据从CPU复制到GPU。你能确认你没有这样做吗?嗨@harveyslash,我没有使用GPU执行任务。我将数据转换为TFRecords,并使用tfe.Iterator对数据进行迭代。