【问题标题】:tf.data vs keras.utils.sequence performancetf.data vs keras.utils.sequence 性能
【发布时间】:2019-04-25 15:28:03
【问题描述】:

我正在尝试决定是使用现有的 keras.utils.sequence 模块还是切换到 tf.data。据我了解,tf.data 通过overlapping training on GPU with pre-processing on the CPU 优化了性能。但这与 keras.utils.sequence 和 keras 数据生成器相比如何?从我读到的here 看来,它似乎在做同样的事情。切换到 tf.data 有什么好处吗?

【问题讨论】:

  • 你找到答案了吗?

标签: python tensorflow keras


【解决方案1】:

这两种方法都将输入数据预处理与模型训练重叠。 keras.utils.sequence 通过运行多个 Python 进程来做到这一点,而tf.data 通过运行多个 C++ 线程来做到这一点。

如果您的预处理由非 TensorFlow Python 库(例如 PIL)完成,keras.utils.sequence 可能更适合您,因为需要多个进程来避免 Python 的全局解释器锁争用。

如果您可以使用 TensorFlow 操作表达您的预处理,我希望 tf.data 能够提供更好的性能。

需要考虑的其他事项:

  • tf.data 是为 tf.keras 构建可扩展输入管道的推荐方法
  • tf.data 的使用范围比 keras.utils.sequence 更广泛,因此在获得良好性能方面可能更容易搜索帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 2013-08-25
    • 2021-02-27
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多