桌面端 4060 Tensorflow 或 Pytorch 检测不到 GPU 解决办法

文章讲述了在特定硬件环境下,如何解决Tensorflow和Pytorch在Python中无法检测到GPU的问题,强调了CUDA和cudnn版本的一致性以及Tensorflow和Pytorch版本的选择。作者提供了详细的检查方法和解决步骤,包括降级或升级相关库的版本以实现GPU的正确识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前置条件

硬件条件

  R5-5600G + RTX4060

当前日期

  当前时间是 2023 年 12 月 27 日,请注意本文的时效性,保不齐后续出现某个组件的更新能够直接解决这个问题。

检查方法

  检测 Tensorflow 是否检测得到 GPU,运行以下 Python 代码

import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus)

  如果运行结果为

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

  那么恭喜,说明你的 tf 仅仅是检测不到 GPU 设备,CPU 设备还是能够检查到的。

  但是,好像从某个版本开始,tf 就不区分 CPU 版和 GPU 版了,所以这个问题通过 install tensorflow-gpu 解决的方法已经过时了。

  检测 Pytorch 是否检测得到 GPU,运行以下 Python 代码

import torch
print(torch.cuda.is_available())  # 判断是否可以使用gpu计算
print(torch.cuda.device_count())  # 显示gpu数量

  如果运行结果为

False
0

则说明 Pytorch 没有检测到 GPU。

解决方法

  大部分的解决思路,我也是看了别的大佬的文章整理的1 2,这里我直接给出结论:首先要将 CUDA 和 cudnn 的版本对齐(高了的话记得先卸载干净);tensorflow 大概率是版本安装得太高了;torch 大概率也是安装了过高的版本,或干脆装成了 CPU 版本的了。

  以下我只给出对应版本和查看方法,具体安装教程直接找有很多,我就不赘述了。

GPU 系统驱动

CUDA==11.2

  用命令行指令查看版本

nvcc -V

在这里插入图片描述

cudnn==8.1.1

  到 CUDA 安装路径下的 include 文件夹中(以我的举例,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\include),找到 cudnn_version.h 文件,右键 -> 编辑 找到以下三行查看版本
在这里插入图片描述

GPU 在 Python 中的驱动

  这一块也是我后续多次给不同设备调试 CUDA 环境确认的,在我看来与 TF 相关的是上一部分的系统驱动,而这一部分的 Python 包驱动是和 Pytorch 相关的,也就是 torch 似乎只能检测到以本章节安装的 CUDA 驱动。

  我是先用这条指令查看了一下我所配置的清华源中是否有和上一部分系统驱动相同版本的包驱动:

conda search cudatoolkit
conda search cudnn

但是似乎都没有,所以我就都往后找了一个版本,事实证明是可行的。

cudatoolkit==11.3.1

conda install cudatoolkit=11.3.1

cudnn==8.2.1

conda install cudnn=8.2.1

Tensorflow

tensorflow==2.10.0

  这里要先注意,用 pip 安装 tensorflow==2.10.0 之前,要确保 Python 版本在 3.5~3.8 之间3,否则会出现报错。

pip install tensorflow==2.10.0

  用命令行指令查看版本

pip show tensorflow

在这里插入图片描述

Pytorch

pytorch==1.10.0

  Pytorch 官网其实有提供官方的版本对齐文档4,由于上面我们的 CUDA 版本为 11.2,但是官方网站中并没有对应的 Pytorch,所以我选择了高一个版本的(即 CUDA==11.3 所对应的 Pytorch)进行安装,结果证明可行。
在这里插入图片描述

conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 -c pytorch -c conda-forge

结果

  再次检查,Tensorflow 对应的输出变为

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

Pytorch 对应的输出变为

True
1

则代表都检测成功了。

  在 Keras 项目开头加上

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

训练速度直接翻了三倍。


  1. 为什么选择tensorflow==2.10.0 ↩︎

  2. Tensorflow与Python、CUDA、cuDNN的版本对应表 ↩︎

  3. 安装tensorflow的Python版本要求 ↩︎

  4. CUDA 版本对应的 Pytorch 版本 ↩︎

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值