我正在使用GPU版本的keras在经过预训练的网络上应用转移学习。我不知道如何来定义参数 max_queue_size
,
workers
和 use_multiprocessing
。如果我更改这些参数(主要是为了加快学习速度),则不确定是否每个时期仍能看到所有数据。
max_queue_size
:
内部训练队列的最大大小,用于“预缓存”生成器中的样本
问题: 这是否指的是在CPU上准备多少批次?有什么关系workers
?如何最佳定义?
workers
:
并行生成批处理的线程数。批处理在CPU上并行计算,然后即时传递到GPU进行神经网络计算
问题: 如何找出我的CPU可以/应该并行生成多少个批次?
use_multiprocessing
:
是否使用基于进程的线程
问题: 如果更改,是否必须将此参数设置为true workers
?它与CPU使用率有关吗?
相关问题 可以在这里找到:
工人在Keras中的fit_generator中是什么意思?
“ model.fit_generator”中使用的参数“ max_q_size”是什么?
如何在Keras中使用数据生成器的详细示例。
我使用fit_generator()
如下:
history = model.fit_generator(generator=trainGenerator,
steps_per_epoch=trainGenerator.samples//nBatches, # total number of steps (batches of samples)
epochs=nEpochs, # number of epochs to train the model
verbose=2, # verbosity mode. 0 = silent, 1 = progress bar, 2 = one line per epoch
callbacks=callback, # keras.callbacks.Callback instances to apply during training
validation_data=valGenerator, # generator or tuple on which to evaluate the loss and any model metrics at the end of each epoch
validation_steps=
valGenerator.samples//nBatches, # number of steps (batches of samples) to yield from validation_data generator before stopping at the end of every epoch
class_weight=classWeights, # optional dictionary mapping class indices (integers) to a weight (float) value, used for weighting the loss function
max_queue_size=10, # maximum size for the generator queue
workers=1, # maximum number of processes to spin up when using process-based threading
use_multiprocessing=False, # whether to use process-based threading
shuffle=True, # whether to shuffle the order of the batches at the beginning of each epoch
initial_epoch=0)
我的机器的规格是:
CPU : 2xXeon E5-2260 2.6 GHz
Cores: 10
Graphic card: Titan X, Maxwell, GM200
RAM: 128 GB
HDD: 4TB
SSD: 512 GB
Q_0:
问题:这是否指的是在CPU上准备多少批次?它与工人有什么关系?如何最佳定义?
从发布的链接中,您可以了解到CPU一直在创建批处理,直到队列达到最大队列大小或到达停止为止。您需要准备好批处理以供GPU“使用”,以使GPU不必等待CPU。队列大小的理想值是使其足够大,以使您的GPU始终在接近最大值的情况下运行,而不必等待CPU准备新批处理。
Q_1:
问题:如何找出我的CPU可以/应该并行生成多少个批次?
如果您发现您的GPU处于空闲状态并正在等待批处理,请尝试增加工作人员数量,也许还增加队列大小。
Q_2:
如果更改工作人员,是否必须将此参数设置为true?它与CPU使用率有关吗?
这是将其设置为True
或时发生的情况的实用分析False
。这里是一个建议,将其设置为False
防止冻结(在我的设置True
工作正常不结冰)。也许其他人可以增进我们对该主题的理解。
尝试不进行顺序设置,尝试使CPU为GPU提供足够的数据。
另外:您可以(应该?)在下一次提出几个问题,以便于回答。
问题内容: 我对groovy的了解并没有超出我对Jenkinsfiles的了解。我试图弄清楚是否有可能在Jenkinsfile中定义一个映射,然后可以以“ for循环”方式应用该映射。 我有这些变量: 我的Jenkinsfile中有一个如下所示的: 有没有办法为每个配对做一个舞台?我的尝试还没有运气。 问题答案: Jenkins文档中有一些类似的用户提交的示例。 这样的事情应该起作用:
问题内容: 我有一个现有的Web应用程序,我希望将其转换为不带Servlet 3.0的web.xml。我设法使其正常工作,但是web.xml中有2个标记,但我仍然不知道在无web.xml的环境中的等效代码。 任何帮助表示赞赏 问题答案: 在Servlets 3.0中,在许多情况下不需要web.xml,但是有时它是必需的或仅是有用的。您的情况只是其中之一- 没有特殊的注释来定义欢迎文件列表或错误页面
本文向大家介绍如何在PostgreSQL中定义和查询json列?,包括了如何在PostgreSQL中定义和查询json列?的使用技巧和注意事项,需要的朋友参考一下 在PostgreSQL中定义JSON列的能力使其功能非常强大,并且可以帮助PostgreSQL用户体验SQL和NoSQL的两全其美。 创建JSON列非常简单。您只需要像创建其他列一样创建/定义它,然后使用数据类型作为JSON。 让我们在
问题内容: 很简单,我正在学习Python,但是找不到可以告诉我如何编写以下内容的参考: 后来: 这是一个具有以下属性的班级团队:名称/徽标/成员 编辑 经过几次尝试,我得到了: 后来 这是Python方式吗?感觉很奇怪(当然来自强类型语言)。 问题答案: 在Python中,通常不编写getter和setter,除非您确实为它们提供了一个简单的实现(此时使用属性描述符)。
我正在使用IText7从html字符串生成pdf。现在,我需要对段落应用自定义颜色和自定义字体或字体系列。 如何使用Itext7实现这一点? 谢谢