python-3.x - 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 上。这些组件在安装过程中失败:
- Visual Studio 集成
- NSight 系统
- NSight 计算
所以,我安装了正确安装的 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的稳定环境?
解决方案
下面是我如何让它工作的。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))
推荐阅读
- android - android将recyclerview项目位置传递给对话框按钮监听器
- reactjs - 在 Reactjs 中使用 map 复制对象
- javascript - 使用 Google Cloud Functions 抓取时 page.evaluate 不返回响应?
- javascript - 开玩笑抛出错误 SyntaxError: Unexpected identifier
- javascript - React.js 如何在组件内循环和渲染组件?
- php - 如何使 mail() 消息间距
- spring-boot - 无法让 liquibase 读取我的 JPA 实体的更改
- powershell - 我如何用 powershell 编写优雅的 ping
- javascript - Toogle Google 输入工具通过 Angular
- meilisearch - MeiliSearch 自动补全