关于torch.cuda.is_available() 返回False 详细说明及解决

一 cuda 环境检测失败

cuda 环境检测代码:

import torchprint(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)

cuda 环境检测代码执行结果如下图:

关键代码print(torch.cuda.is_available()) 返回 False 通常表示当前环境下CUDA 设备不可用。这可能电脑没有安装 CUDA 驱动程序或者安装的 PyTorch 版本不支持 CUDA

二 解决思路,先了解问题的本质

1 什么是CUDA,cuda与gpu与PyTorch的关系

 CUDA(Compute Unified Device Architecture)是由 NVIDIA 开发的用于并行计算的平台(通用计算构建的运算平台,是建立GPU显卡驱动层之上,必须与之相匹配。cuda的上层通常是各种机器学习库如PyTorch,cuDNN)。cuda作用是利用 NVIDIA GPU(图形处理单元)的强大计算能力来加速各种科学计算、数值模拟和深度学习任务。cuda与gpu与PyTorch的关系图如下:

上图关键项详细说明:

  1. gpu显卡驱动,作为显卡硬件的接口,操作系统只能通过这个接口来控制显卡进行2D/3D渲染或计算。
  2. CUDA:是“GPU通用计算”构建的运算平台,允许开发人员编写C/C++代码,利用GPU的并行性来执行任务。
  3. PyTorch和cuDNN:流行的深度学习框架,支持CUDA,用于训练和推理深度神经网络。

2 找出问题与解决

根据我们用的框架PyTorch从上面关系图中可以看出torch.cuda.is_available()返回False的原因无非就只有这 几个关系

从上图分析造成的原因: 

  1. cuda与显卡驱动的匹配。
  2. cuda与Tytorch版本的匹配。
  3. gpu驱动与显卡匹配。(在window平台下最不可能发生)
1 cuda与显卡驱动匹配问题(最常见之一)

  如果显卡驱动不是最新的,建议下载最新的显卡驱动,

  在官网找到合适版本的cuda:https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html

一般根据操作系统平台和版本号 匹配合适版本的cuda下载安装即可。

 安装完成查看安装版本

nvcc --version

 执行后看到版本信息,我当前环境cuda版本是v11.6,如下图:

 打开官网https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html查到v11.6版本行

查看驱动版本

nvidia-smi

执行后查看到的版本号是537.13,  从上图中 cuda 11.6.x参数要求是大于或等于452.39,所以是cuda与显卡驱动是匹配的正常的。如下图:

 2 cuda与pytorch版本的匹配问题(最常见之二)

   假设在最新cuda版本的环境上安装旧版本的PyTorch,那么旧版本的PyTorch可能不会支持。此 时需要删除旧的版本,从官网下载新版本或指定版本的PyTorch即可。

PyTorch官网:

重新安装后,验证pytorch安装成功:

import torchprint(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)

执行上面代码后,安装验证通过如下图: 

3 排查gpu驱动与显卡匹配

  在window平台最不可能发生,如果有问题只要在官网选择驱动下载重新安装最新的显卡驱动就可解决。

排查也简单,看一下任务管理器中的gpu情况就知道安装是否正确,如下图:

显卡驱动官方下载:https://www.nvidia.com/Download/index.aspx?lang=en-us

3 总结 

  此次错误PyTorch 的版本None,没有安装成功,重新在PyTorch官网下载安装后即正常使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2804712.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

原型设计工具Axure RP

Axure RP是一款专业的快速原型设计工具。Axure(发音:Ack-sure),代表美国Axure公司;RP则是Rapid Prototyping(快速原型)的缩写。 下载链接:https://www.axure.com/ 下载 可以免费试用…

HTMLElement.click()的回调触发踩坑

先看看以下代码 const el document.getElementById("btn") el.addEventListener("click", () > {Promise.resolve().then(() > console.log("microtask 1"));console.log("1"); }); el.addEventListener("click", (…

Java多线程并发学习

一、Java 中用到的线程调度 1. 抢占式调度: 抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长&#xff0…

网络编程 TCP/UDP通信

网络编程 TCP/UDP通信 1. 0.0.0.0地址与客户端bind函数2. UDP 服务器与客户端通信3. TCP 服务器与客户端通信 1. 0.0.0.0地址与客户端bind函数 0.0.0.0的地址作用 在网络编程中,0.0.0.0是一个特殊的IP地址,通常用于表示"任意地址"或"所有…

使用Lombok @Data 出现java: 找不到符号 的问题

第一种&#xff1a;pom依赖最好如下方式 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>RELEASE</version><scope>compile</scope> </dependency>第二种&#xff1…

C#实用开发(14)--高清晰度字体和窗体分辨率问题。

新建winform程序是&#xff0c;又是会感觉到字体清晰度不够高。还有一种现象就是分辨率的问题&#xff0c;我们平常在自己的电脑开发是用125百分比的分辨率&#xff0c;实际部署的工控机是100&#xff0c;这就会导致分辨率不一致的问题。 可以通过新建应用程序清单&#xff0c;…

Android 广播的基本概念

一.广播简介 Broadcast是安卓四大组件之一。安卓为了方便进行系统级别的消息通知&#xff0c;引入了一套广播消息机制。打个比方&#xff0c;记得原来在上课的时候&#xff0c;每个班级的教室里都会装有一个喇叭&#xff0c;这些喇叭都是接入到学校的广播室的&#xff0c;一旦…

软件推荐:电脑端和手机端做现货白银交易用什么软件?

现在进行现货白银投资&#xff0c;我们不需要到线下的营业厅。在信息时代&#xff0c;一台电脑甚至是移动设备&#xff0c;如手机或者平板电脑等&#xff0c;就可以完成现货白银交易。不过在电脑或者移动设备上完成交易&#xff0c;我们需要现货白银交易软件。下面我们就来讨论…

2024牛客寒假集训营4 -- H数三角形(hard) 题解

目录 H数三角形&#xff08;hard&#xff09; 题目大意&#xff1a; 思路解析&#xff1a; ​编辑 代码实现&#xff1a; H数三角形&#xff08;hard&#xff09; 题目大意&#xff1a; 思路解析&#xff1a; 通过这张图可以发现&#xff0c;左腰和右腰是对称的&#xff0…

基于PID-bang-bang控制算法的卫星姿态控制matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于PID-bang-bang控制算法的卫星姿态控制。仿真输出控制器的控制收敛曲线&#xff0c;卫星姿态调整过程的动画。 2.系统仿真结果 3.核心程序与模型 版本&#xff1a;MATLAB…

【数学建模规则】2024年第九届数维杯大学生数学建模挑战赛参赛指南

一、竞赛介绍 数维杯大学生数学建模挑战赛每年分为两场&#xff0c;每年上半年为数维杯国赛&#xff08;5月&#xff0c;俗称小国赛&#xff09;&#xff0c;下半年为数维杯国际赛(11月)&#xff0c;2023年第八届数维杯大学生数学建模挑战赛共有近1.4万名学生参赛&#xff0c;…

Google宣布暂停其AI工具“Gemini”生成人物图像的功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

下载 axios.js 文件到本地【linux】

方式一 npm install axios在$NODE_PATH/node_modules/axios/dist路径下即可找到axios.js。 方式二 1、百度搜索 GitHub 官网&#xff1a;https://github.com/ 2、搜索 axios 3、点击 axios/axios 4、下载到本地 5、解压&#xff0c;进入到 dist 文件夹** 参考&#x…

【UI自动化】使用poco框架进行元素唯一定位

直接选择&#xff1a; 1.poco(text买入).click() 2.poco("android.widget.ImageView").click()相对选择、空间选择&#xff1a; 3.poco(text/name).parent().child()[0].click()正则表达式&#xff1a; 4.listpoco(textMatches".*ETF")今天主要想记录下…

什么是SSD型云服务器?

​  SSD云服务器是一种使用固态硬盘代替传统HDD进行存储的虚拟机。SDD 使用闪存单元来存储数据&#xff0c;与云计算技术相结合&#xff0c;形成强大且高效的存储解决方案&#xff0c;可以随时随地访问。 SSD云服务器如何工作? SSD云服务器是利用虚拟化和云计算技术创建的。…

使用Postman和JMeter进行signature签名

一、前言 ​ 有些接口的请求会带上sign&#xff08;签名&#xff09;进行请求&#xff0c;各接口对sign的签名内容、方式可能不一样&#xff0c;但一般都是从接口的入参中选择部分内容组成一个字符串&#xff0c;然后再进行签名操作, 将结果赋值给sign; 完整规范的接口文档都会…

【Vuforia+Unity】AR06-空间环境识别功能(AreaTargets)

Vuforia原理&#xff1a;把被识别的物体转成图、立体图、柱形图&#xff0c;3D模型、环境模型&#xff0c;然后模型生成Vuforia数据库-导入Unity-参考模型位置开始摆放数字内容&#xff0c;然后参考模型自动隐藏-发布APP-识别生活中实物-数字内容叠加上去&#xff01; 不论你是…

【leetcode热题】填充每个节点的下一个右侧节点指针

给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;让这个指针指向其下一个右侧节点。如果找不到…

【Qt学习】QPushButton添加图标 并通过快捷键控制该图标

文章目录 1. 介绍2. 操作3. 相关资源文件 1. 介绍 我们知道&#xff1a;QPushButton表示一个按钮&#xff0c;用于响应用户的点击事件。QPushButton可以显示文本、图标或同时显示两者&#xff0c;也可以设置按钮的样式和状态。 我们利用这点 实现一个简单的功能&#xff1a;用…

C#学习总结

1、访问权限 方法默认访问修饰符&#xff1a;private 类默认访问修饰符&#xff1a;internal 类的成员默认访问修饰符&#xff1a;private 2、UserControl的使用 首先添加用户控件 使用时一种是通过代码添加&#xff0c;一种是通过拖动组件到xaml中