我对如何使用Keras Documentation中的max_queue_size
,workers
和use_multiprocessing
感到困惑
有人可以请您举例说明如果有的话如何使用他们
这是我根据这三个领域的不科学猜测使用它的方式。
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)
答案 0 :(得分:0)
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)
根据我的经验,这些参数可以协同工作;也就是说,如果您想提高速度方面的表现,可以尝试提高所有这些。