我正在使用一个集群来训练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;
2条答案
按热度按时间daolsyd01#
谢谢你的回答。我按照下面的步骤解决了这个问题。
1.我使用
ls /usr/local
命令检查系统上已安装的CUDA Toolkit版本。1.我对
.bashrc
中的PATH文件做了如下修改:1.我运行了source
.bashrc
来应用这些更改。1.现在,
nvcc -V
命令正在工作,并显示TensorFlow的正确版本:pip uninstall tensorflow-gpu
和pip uninstall tensorflow-estimator
pip install tensorflow-gpu==2.3.0
(根据此链接与CUDA 10.1兼容)现在,当我运行下面的代码:
输出为:
谢谢你!
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也没有显示。