我可以在 gpu 上运行 Keras 模型吗?

新手上路,请多包涵

我正在运行 Keras 模型,提交截止日期为 36 小时,如果我在 cpu 上训练我的模型大约需要 50 小时,有没有办法在 gpu 上运行 Keras?

我正在使用 Tensorflow 后端并在我的 Jupyter 笔记本上运行它,但没有安装 anaconda。

原文由 Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 798
2 个回答

是的,您可以在 GPU 上运行 keras 模型。您必须先检查几件事。

  1. 你的系统有 GPU(Nvidia。因为 AMD 还没有工作)
  2. 你已经安装了 GPU 版本的 tensorflow
  3. 您已安装 CUDA 安装说明
  4. 验证 tensorflow 是否正在使用 GPU 检查 GPU 是否正在运行

sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

对于 TF > v2.0

sess = tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True))

(感谢@nbro 和@Ferro 在评论中指出这一点)

或者

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

输出将是这样的:

 [
  name: "/cpu:0"device_type: "CPU",
  name: "/gpu:0"device_type: "GPU"
]

完成所有这些后,您的模型将在 GPU 上运行:

检查 keras(>=2.1.1) 是否正在使用 GPU:

 from keras import backend as K
K.tensorflow_backend._get_available_gpus()

一切顺利。

原文由 Vikash Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议

2.0 兼容答案:虽然上面提到的答案详细解释了如何在 Keras 模型上使用 GPU,但我想解释一下如何为 Tensorflow Version 2.0 完成。

要知道有多少 GPU 可用,我们可以使用以下代码:

 print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

要找出您的操作和张量分配给了哪些设备,请将 tf.debugging.set_log_device_placement(True) 作为程序的第一条语句。

启用设备放置日志记录会导致打印任何张量分配或操作。例如,运行以下代码:

 tf.debugging.set_log_device_placement(True)

# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)

print(c)

给出如下所示的输出:

在设备 /job:localhost/replica:0/task:0/device:GPU:0 中执行 op MatMul tf.Tensor( [[22. 28.] [49. 64.]], shape=(2, 2), dtype=float32)

有关更多信息,请参阅 此链接

原文由 Tensorflow Support 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题