我很困惑如何使用max_queue_size
,workers
以及use_multiprocessing
在Keras文档
有人可以举例说明如果有的话如何使用它们
这是我基于对这三个领域的不科学猜测而使用的方法。
classifier.fit_generator(training_set,
steps_per_epoch = 8000,
epochs = 25,
validation_data = test_set,
validation_steps = 2000/32,
max_queue_size = 10,
use_multiprocessing = False,
workers=1)
MAX_QUEUE_SIZE- >如果在监视GPU使用情况时GPU空转(正在等待批处理),请增加此参数。理想情况下,GPU应该尽可能少地等待CPU提取数据。等待批处理意味着GPU内存消耗不是恒定的峰值(例如95%)。恰当的例子:监视GPU内存使用率时,您会看到很大的峰值(5%使用率,95%使用率,5%使用率,95%使用率)。95%和5%使用率之间的time_difference实际上是GPU空闲时的时间。如果您有用法差异,请增加此queue_size。
USE_MULTIPROCESSING- >可能会在Windows上产生错误(对我而言,这没有发生,但是我看到其他帖子,由于可能会冻结多处理问题),在基于Linux的系统上可以正常工作。如果要使用多个进程将数据提取到CPU,请将其设置为true。例如
..,use_multiprocessing = True, workers = 4)
以我的经验,这些参数可以协同工作。即,如果您想提高性能,可以尝试提高所有性能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句