python TensorFlow无法检测群集上的GPU

fdx2calv  于 2023-05-27  发布在  Python
关注(0)|答案(2)|浏览(122)

我正在使用一个集群来训练Jupyter Notebook中的机器学习模型(TensorFlow)。在我开始使用之前,集群已经安装了JupyterHub(Python 3.7.5)、CUDA和cuDNN。该集群运行在Ubuntu 18.04和GCC版本8.4.0上。当我执行nvidia-smi命令时,我得到以下输出:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
(...)
|===============================+======================+======================|
|   0  Quadro P4000        On   | 00000000:00:05.0 Off |                  N/A |
(...)

我不是系统管理员,所以我使用pip安装了TensorFlow-GPU。然而,当我训练模型时,Jupyter Notebook和TensorFlow没有检测到任何GPU,如下所示:
代码:

import tensorflow as tf

print(tf.__version__)
print(tf.config.list_physical_devices('GPU'))

输出:

2.8.3
[]

我希望你能帮助我。
以下是我已经采取的步骤:

  • 重新安装了tensorflow包;
  • 安装了不同版本的Tensorflow;
daolsyd0

daolsyd01#

谢谢你的回答。我按照下面的步骤解决了这个问题。
1.我使用ls /usr/local命令检查系统上已安装的CUDA Toolkit版本。
1.我对.bashrc中的PATH文件做了如下修改:

export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}$
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64/${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

1.我运行了source .bashrc来应用这些更改。
1.现在,nvcc -V命令正在工作,并显示TensorFlow的正确版本:

Cuda compilation tools, release 10.1, V10.1.243
  1. pip uninstall tensorflow-gpupip uninstall tensorflow-estimator
  2. pip install tensorflow-gpu==2.3.0(根据此链接与CUDA 10.1兼容)
    现在,当我运行下面的代码:
import tensorflow as tf

print(tf.__version__)
print(tf.config.list_physical_devices('GPU'))

输出为:

2.3.0
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

谢谢你!

x9ybnkn6

x9ybnkn62#

TensorFlow文档列出了以下规范:
| 版本|Python版本|编译器|构建工具|CuDNN| CUDA|
| - -----|- -----|- -----|- -----|- -----|- -----|
| tensorflow-2.9.0| 3.7-3.10 |GCC 9.3.1| Bazel 5.0.0| 8.1|十一点二|
| tensorflow-2.8.0| 3.7-3.10 |GCC 7.3.1| Bazel 4.2.1| 8.1|十一点二|
使用TensorFlow 2.8.0版本; GCC 7.3.1已列出。这可能是TensorFlow无法检测GPU的原因。我有一个类似的问题,我使用了一个略有不同的版本比一个指定和我的GPU也没有显示。

相关问题