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

2022-01-21 00:00:00 python tensorflow keras dataset

问题描述

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

In TensorFlow's Dataset API, we can use dataset.prefetch(buffer_size=xxx) to preload other batches' data while GPU is processing the current batch's data, therefore, I can make full use of GPU.

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

I'm going to use Keras, and wonder if keras has a similar API for me to make full use of GPU, instead of serial execution: read batch 0->process batch 0->read batch 1-> process batch 1-> ...

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

I briefly looked through the keras API and did not see a description of the prefetch.


解决方案

如果调用 fit_generatorworkers > 1,使用_multiprocessing=True,它将预取 queue_size 个批次.

If you call fit_generator with workers > 1, use_multiprocessing=True, it will prefetch queue_size batches.

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

From docs: max_queue_size: Integer. Maximum size for the generator queue. If unspecified, max_queue_size will default to 10.

相关文章