python - 将 keras fit/fit_generator 与 max_queue_size、workers 和 use_multiprocessing 一起使用

标签 python tensorflow keras

我对您如何使用 max_queue_size 感到困惑, workersuse_multiprocessingKeras Documentation

有人可以举一个例子,如果你有的话,你会如何使用它们

  • 1xGPU(Nvidia Quadro p1000)
  • 具有 12 个逻辑处理器的 6 核 CPU

  • 以下是我根据对这三个领域的不科学猜测来使用它的方法。
    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% 使用率)。 time_difference 95% 到 5% 的使用率实际上是 GPU空闲时间 .如果您有此类使用差异,请增加此 queue_size。
    USE_MULTIPROCESSING --> 可能在 Windows 上产生错误(对我来说它没有发生,但我看到其他帖子,由于多处理问题,它可能会卡住),在基于 Linux 的系统上运行良好。如果您想使用多个进程将数据提取到您的 CPU,请将其设置为 true。例如

     ..,use_multiprocessing = True, workers = 4)
    
    根据我的经验,这些参数一起工作;也就是说,如果您想提高速度方面的表现,您可以尝试提高所有速度。

    关于python - 将 keras fit/fit_generator 与 max_queue_size、workers 和 use_multiprocessing 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58835313/

    相关文章:

    python - 如何在 macOS 上更快地截取屏幕截图?

    tensorflow - 计算 GPU (Tesla K40c) 比图形 GPU (GTX 960) 慢

    python - 不能在卷积层中同时使用偏置和批量归一化

    machine-learning - 使用预训练的卷积神经网络了解特征提取

    keras - 在自动编码器中何处使用扩张卷积来处理时态数据?

    python - 喀拉斯 2 : Using lambda function in "Merge" layers

    python - Django注册模块

    python - 计算多个词典之间的相似度 "score"

    python - 仅在一个方向上使用膨胀?

    python - 如何在 Tensorflow 中用掩码减去两个张量?