首页 > 解决方案 > Python & Tensorflow & CUDA 环境设置问题

问题描述

昨天我tensorflow 2.2 在 Windows 10 Enterprise 64 位上使用 Python 3.7.4,包括使用 GPU。今天早上,同一个系统不再看到 GPU。我已经卸载/重新安装了 CUDA,以及基于 tensorflow 文档的其他要求,但它只是拒绝工作。

PC 规格:i7 CPU 3.70GHz,64GB RAM,安装了 NVidia GeForce GTX 780 Ti 显卡(驱动程序 26.21.14.4122)。

https://www.tensorflow.org/install/gpu说 tensorflow 特别需要 NVidia CUDA Toolkit 10.1 不是 10.0,不是 10.2)。

自然,该版本拒绝安装在我的 PC 上。这些组件在安装过程中失败:

所以,我安装了正确安装的 10.2,但是没有运行(这并不奇怪,鉴于 tensorflow 文档)。

安装了什么:

$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 441.22       Driver Version: 441.22       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 780 Ti WDDM  | 00000000:01:00.0 N/A |                  N/A |
| 27%   41C    P8    N/A /  N/A |    458MiB /  3072MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0                    Not Supported                                       |
+-----------------------------------------------------------------------------+
$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.2, V10.2.89

我知道 10.2.89 的 nvcc 输出不是我需要的,但它根本不会安装 10.1,所以我不知道我能做什么。这是个常见的问题吗?有没有我可以运行的诊断程序来确保卡没有死?我应该降级我的 tensorflow 版本吗?我应该一起放弃这个环境吗?是这样,什么是学习 ML的稳定环境?

标签: python-3.xwindows-10tensorflow2.0nsight-computensight-systems

解决方案


下面是我如何让它工作的。TensorFlow 2.2.0、Windows 10、Python 3.7(64 位)。再次感谢 Yahya 对这个解决方案的温和推动。

卸载所有NVIDIA 软件。

安装 CUDA 工具包 10.1。我做了包cuda_10.1.243_win10_network.exe的快速安装。任何其他版本的 CUDA 10.1 都没有正确安装。

安装 CUDNN 包 7.6。将cudnn-10.1-windows10-x64-v7.6.5.32中的所有文件提取到CUDA文件结构中(即C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1)

将这些目录添加到您的路径变量中(假设您在安装期间没有更改路径):

  • C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v10.1\bin
  • C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v10.1\libnvvp

重新启动以初始化路径变量。

通过 PIP卸载所有tensorflow 变体。

通过 PIP 安装 tensorflow 2.2。

然后您可以在 bash 中运行以下代码以确认 tensorflow 能够访问您的视频卡

# Check if tensorflow detects the GPU
import tensorflow as tf
from tensorflow.python.client import device_lib

# Query tensorflow to see if it recognizes your GPU. This will output in the bash window
physical_devices = tf.config.list_physical_devices()
GPU_devices = tf.config.list_physical_devices('GPU')

print("physical_devices:", physical_devices)
print("Num GPUs:", len(GPU_devices))

推荐阅读