当前位置: 代码网 > 科技>电脑产品>CPU > 桌面端 4060 Tensorflow 或 Pytorch 检测不到 GPU 解决办法

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

2024年07月31日 CPU 我要评论
这里我直接给出结论:大概率是tensorflow的版本安装得太高了,将版本降到2.10.0,并且将CUDA和cudnn的版本对齐(高了的话记得先卸载干净),我将我对齐的版本贴上。但是,好像从某个版本开始,tf就不区分CPU版和GPU版了,所以这个问题通过 install tensorflow-gpu 解决的方法已经过时了。当前时间是2023年11月27日,请注意本文的时效性,保不齐后续出现某个组件的更新能够直接解决这个问题。那么恭喜,说明你的tf仅仅是检测不到GPU设备,CPU设备还是能够检查到的。

前置条件

硬件条件

  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. ↩︎

  2. tensorflow与python、cuda、cudnn的版本对应表 ↩︎

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

  4. cuda 版本对应的 pytorch 版本 ↩︎

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com