如何检查keras tensorflow后端是GPU还是CPU版本? [复制]

Posted

技术标签:

【中文标题】如何检查keras tensorflow后端是GPU还是CPU版本? [复制]【英文标题】:How to check if keras tensorflow backend is GPU or CPU version? [duplicate] 【发布时间】:2017-12-17 12:07:27 【问题描述】:

我了解安装 t​​ensorflow 时,您要么安装 GPU 版本,要么安装 CPU 版本。如何检查安装了哪一个(我使用 linux)。

如果安装了GPU版本,如果GPU不可用,它会自动在CPU上运行还是会抛出错误?如果 GPU 可用,是否需要设置特定字段或值以确保它在 GPU 上运行?

【问题讨论】:

@SalvadorDali 我已经尝试了该问题的答案,但它没有打印出任何内容。另外,它没有回答我的问题:如果安装了 GPU 版本,如果 GPU 不可用,它会自动在 CPU 上运行还是会抛出错误?如果 GPU 可用,是否需要设置特定字段或值以确保它在 GPU 上运行? 但它没有打印出任何东西这怎么可能?你有没有试过我的答案。它要么打印某些东西,要么失败,答案解释了每个步骤的含义。基本上你刚才在 cmets 中提出的 2 个问题都在那里得到了回答 @SalvadorDali,抱歉。我试过你的代码,它可以工作,它表明它正在 CPU 上运行。但是,如何检查我拥有的 tensorflow 是 GPU 版本还是 CPU 版本? 【参考方案1】:

您也可以使用 Keras 后端功能进行检查:

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

我在 Keras (2.1.1) 上对此进行了测试

【讨论】:

在 Ubuntu 16.04 上从命令行会话运行这是可行的,但是它不会提示输入其他命令,与直接 tensorflow 相同,然后必须重新启动终端。知道可能是什么原因吗? 上述命令的输出应该是什么 @Nitin 它应该为您提供计算机上可用 GPU 的列表。例如,我得到:['/job:localhost/replica:0/task:0/device:GPU:0'] 在 TF 2.0 中不起作用 对于 TF 2.0from tensorflow.python.keras import backend as K@ShitalShah【参考方案2】:

根据documentation.

如果您在 TensorFlow 或 CNTK 后端运行,如果检测到任何可用的 GPU,您的代码将自动在 GPU 上运行。

你可以通过 -

查看 tensorflow 使用了哪些设备
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

也如this answer中建议的那样

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

这将打印您的 tensorflow 是使用 CPU 还是 GPU 后端。如果您在 jupyter notebook 中运行此命令,请查看您启动 notebook 的控制台。

如果您怀疑是否安装了 tensorflow gpu 版本。您可以通过 pip 安装 gpu 版本。

pip install tensorflow-gpu

【讨论】:

我已经安装了tensorflow gpu,但是keras没有选择,怎么办? 您是否遵循官方指南 - keras.io/backend ? 如果您安装了 tensorflow-gpu 但 Keras 没有选择它,那么很可能没有找到 CUDA 库。您需要 CUDA 库路径和 bin 路径(用于 ptxas)才能有效地将 GPU 与 Keras/TF 结合使用。

以上是关于如何检查keras tensorflow后端是GPU还是CPU版本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 tensorflow 在 keras 中禁用 GPU?

如何从零使用 Keras + TensorFlow 开发一个复杂深度学习模型?

keras 后端 theano/tensorflow

如何让 Keras 在 Anaconda 中使用 Tensorflow 后端?

如何强制 keras 使用 tensorflow GPU 后端

如何更改 Keras 后端(json 文件在哪里)?