Keras 可以预取 tensorflow Dataset 之类的数据吗?

Posted

技术标签:

【中文标题】Keras 可以预取 tensorflow Dataset 之类的数据吗?【英文标题】:Could Keras prefetch data like tensorflow Dataset? 【发布时间】:2019-02-10 02:34:07 【问题描述】:

在TensorFlow的Dataset API中,我们可以使用dataset.prefetch(buffer_size=xxx)来预加载其他batch的数据,而GPU正在处理当前batch的数据,这样我就可以充分利用GPU。

我打算使用 Keras,想知道 keras 是否有类似的 API 让我充分利用 GPU,而不是串行执行:读取批处理 0->处理批处理 0->读取批处理 1->处理批次 1-> ...

我简要浏览了keras API,没有看到预取的描述。

【问题讨论】:

找到了吗? 【参考方案1】:

如果你用workers > 1调用fit_generator,使用_multiprocessing=True,它会预取queue_size个批次。

来自文档:max_queue_size:整数。生成器队列的最大大小。如果未指定,max_queue_size 将默认为 10。

【讨论】:

根据***.com/questions/36986815/…这个答案似乎是对的 从 tensorflow 2.2.0 开始,fit 现在有 workersuse_multiprocessing 的参数。根据 pyimagesearch 上的 this tutorial,我认为 fit_generator 现在是旧版。

以上是关于Keras 可以预取 tensorflow Dataset 之类的数据吗?的主要内容,如果未能解决你的问题,请参考以下文章

Tensorflow 数据集预取和缓存选项的正确用途是啥?

如何在 Tensorflow 中为预取数据集绘制混淆矩阵

keras 后端 theano/tensorflow

tensorflow 和 torch.cuda 可以找到 GPU,但 Keras 不能

将 Keras 模型导入 TensorFlow.js

在 Keras 中使用 TensorFlow 层