【问题标题】:CPU vs GPU usage in Keras (Tensorflow 2.1)Keras 中的 CPU 与 GPU 使用情况(Tensorflow 2.1)
【发布时间】:2020-07-26 03:06:41
【问题描述】:

我已成功设置 TensorFlow 2.1.0 访问我的 GPU:

如果我使用 Keras (from tensorflow import keras) 来适应一些 Sequential 模型(例如 here),默认情况下会使用 GPU 还是 CPU?是否有一些命令可以查看 Keras 正在使用哪个命令,我可以自己设置吗?我真的很想看到一些非常基本的 Keras 模型在 GPU 和 CPU 上进行训练,以便更好地了解性能差异。

【问题讨论】:

  • 在此处查看带有 tf.device 的示例:tensorflow.org/guide/gpu
  • 是的,我看到了,但我也在寻找一些 Keras 示例。我不确定我是否应该已经使用with tf.device 进行模型定义和调用编译或仅用于拟合命令。

标签: python keras gpu cpu tensorflow2.0


【解决方案1】:

从 TensorFlow 2.1 开始,GPU 和 CPU 包都在同一个包中,tensorflow,不像以前的版本中 CPU 和 GPU 有单独的版本:tensorflowtensorflow-gpu

您可以通过这种方式测试以获得更好的感觉:

   #Use only CPU
   import os 
   os.environ['CUDA_VISIBLE_DEVICES'] = '-1'

或者你可以让你的视频卡对 TensorFlow 可见,方法是像上面那样允许默认配置,或者通过以下方式强制它:

os.environ['CUDA_VISIBLE_DEVICES'] = '0'

请注意,在上述设置中,例如,如果您有 4 个 GPU,您将设置:

 os.environ['CUDA_VISIBLE_DEVICES'] = '0,1,2,3'

【讨论】:

  • 酷,谢谢!如果不进行设置,我怎么知道默认使用的是哪一个?
  • 默认情况下,TensorFlow 会尝试使用 GPU,如果没有找到,则回退到 CPU。因此,如果 tf.config.experimental 看到您的 GPU 与您的示例一样,您将使用 GPU 而不是 CPU 进行训练。
  • 除此之外,您可能还需要安装第三方软件来监控您的 GPU 使用情况。如果你在 Windows 上训练,GPU-Z 是一个很好的监控工具。如果你在 Linux 上训练,你可以使用 nvidia-smi 来确保你的网络是在 GPU 上训练的。
  • 我通常会等待几个小时来鼓励更多用户提供一些意见。 :) 顺便说一句,我测试了它并且它有效。有趣的是,我在问题中提到的示例在 CPU(i7-9750H)上比在 GPU(Nvidia 的 GTX 1650)上运行得更快。
  • 如果神经网络非常小,它在 CPU 上的运行速度可能比在 GPU 上快,因为并行计算的好处被 CPU 和 GPU 之间传输的开销所抵消
猜你喜欢
  • 1970-01-01
  • 2017-10-15
  • 2018-09-10
  • 2017-10-11
  • 1970-01-01
  • 2023-03-21
  • 2019-04-03
  • 2016-10-19
  • 1970-01-01
相关资源
最近更新 更多