如何在 keras fit_generator() 中定义 max_queue_size

我正在使用 keras 的 GPU 版本在预先训练的网络上应用转移学习。我不知道如何来定义参数max_queue_sizeworkersuse_multiprocessing。如果我更改这些参数(主要是为了加速学习),我不确定每个时期是否仍然可以看到所有数据。

max_queue_size

  • 用于“预缓存”来自生成器的样本的内部训练队列的最大大小

  • 问:是指CPU上准备了多少batch?它与 有什么关系workers?如何最佳定义?

workers

  • 并行生成批处理的线程数。批处理在 CPU 上并行计算,并即时传递到 GPU 进行神经网络计算

  • 问题:我如何知道我的 CPU 可以/应该并行生成多少批次?

use_multiprocessing

  • 是否使用基于进程的线程

  • 问题:如果我更改,是否必须将此参数设置为 true workers?它与CPU使用率有关吗?


慕姐4208626
浏览 388回答 1
1回答

精慕HU

Q_0:问:是指CPU上准备了多少batch?它与工人有什么关系?如何最佳定义?从您发布的链接中,您可以了解到您的 CPU 一直在创建批处理,直到队列达到最大队列大小或到达停止点。您希望为 GPU 准备好批次以“接受”,以便 GPU 不必等待 CPU。队列大小的理想值是使其足够大,以便您的 GPU 始终接近最大值运行,而不必等待 CPU 准备新批次。Q_1:问题:我如何知道我的 CPU 可以/应该并行生成多少批次?如果您看到您的 GPU 处于空闲状态并等待批处理,请尝试增加工作人员的数量,也许还可以增加队列大小。Q_2:如果我更换工人,是否必须将此参数设置为 true?它与CPU使用率有关吗?以下是对将其设置为True或时会发生什么的实际分析False。这是将其设置False为防止冻结的建议(在我的设置中True没有冻结就可以正常工作)。也许其他人可以增加我们对这个话题的理解。总之:尽量不要有顺序的设置,尽量让 CPU 为 GPU 提供足够的数据。另外:下次您可以(应该?)创建几个问题,以便更容易回答。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python