成功解决:AssertionError: Torch not compiled with CUDA enabled

news2024/9/22 4:47:13

在运行pycharm项目的时候,出现了以上的报错,主要可以归结于以下两个个方面

1、没有安装GPU版本的pytorch,只是使用清华的镜像地址下载了CPU版本的pytorch

2、安装的CUDA和安装的pytorch的版本不相互对应

我使用   pip list 来查看我在该环境下安装了哪些依赖项,发现自己的torch是CPU版本的, 

如何区分的呢?主要通过安装的环境的版本号的后面时候加上了cu,比如说下面这幅图就可以看出这里采用的CUDA版本号为11.3,所以在我的环境里面没有安装GPU版本的torch.

 找到问题后,我们就可以进行解决了。

如果自己不是CUDA版本的torch,可以使用pip uninstall torch的命令来卸载已经安装好的torch后继续下面的操作.

第一步:查看自己电脑上安装的python版本,因为python的版本对应者pytorch的版本,pytorch的版本又对应着CUDA的版本。所以先查看自己的python的版本,那么如何查看自己的电脑上的python版本呢?

可以在pycharm的Terminal中,在自己使用的环境下,输入python:下面图中的python 3.6.2就是我的Python的版本号。

如何查看自己项目的环境配置,可以通过pycharm上:

File---Settings---Project--Python Interpreter

如何进入到Terminal,可以通过下面的提示。

 第二步:下载离线的torch包。找到python对应的版本,就可以在下面的这个网站中选择现在对应的torch版本,注意我们选择下载torch时要注意python的版本号,并且在选择的时候选择cu开头的链接下载,cu对应的CUDA的版本,比如这里的python版本为3.6,那么只要选择cp36的链接下载

torch下载包链接

cu102/torch-1.7.1-cp38-cp38-linux_x86_64.whl

  • cu102:表示cuda版本为10.2,
  • torch-1.7.1:表示torch版本为1.7.1
  • cp38:表示适用python版本为3.8
  • linux:表示适用于linux系统
  • x86_64:表示同时兼容32和64位系统、

第三步:下载对应版本的CUDA。在上面下载torch的时候也可以看到自己对应的CUDA的版本

点击   CUDA下载官网  进入到CUDA的下载官网,往下滑,直到最下面,然后找到下图提示的内容

就可以看到CUDA的很多版本的下载连接,选择我们需要的版本进行下载

选择好下载的版本后,进入下载页面选择我们下载的系统,以及下载的windows系统的版本,和下载方式就可以进行CUDA的下载 

下载好CUDA就可以对它进行安装了

 

点击我们下载好的CUDA的exe程序后,就会出现CUDA的安装页面,这里显示的是安装地址,一般可以不做处理,安装到它默认的地址。 

 

在安装选项中选择自定义安装,然后点击下一步,后面的步骤相同,一直点击(下一步)直到完成CUDA的安装。

 

 在安装完成之后,可以打开系统的环境变量来检查CUDA是否已经加入到环境变量中了,默认情况下是自动添加到环境变量中的。

检查是否安装成功:打开cmd,输入 nvcc -V, 出现你的CUDA的版本信息就说明安装成功

第四步:将刚才下载好的torch包进行安装,放在项目的目录下:我这里的目录的路径为: D:\zuoye\ReID\deep-person-reid,在pycharm进入到Terminal中,进入到自己的环境中,pip安装对应的torch包,就可以实现GPU版本的torch的安装,也就可以解决上面的问题了。

以上就是这个错误的全部解决方法,总结一下就是:找到对应的python版本,下载python版本对应下的GPU版本的torch文件包,然后下载CUDA,将下载的包放在项目下,然后进行pip安装即可。

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

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

相关文章

【2024.2.5练习】砍竹子(25分)

题目描述 题目分析 考虑题目是否满足贪心。每次施展魔法会使一段连续的竹子高度变为一半左右的平方根。根据样例,似乎每次让最高的竹子变短就能得到最优解。 假设魔法一次只能对一根竹子使用,永远不出现连续相同高度的竹子,那么显然无论使用…

逆向工程:揭开科技神秘面纱的艺术

在当今这个科技飞速发展的时代,我们每天都在与各种电子产品、软件应用打交道。然而,你是否想过,这些看似复杂的高科技产品是如何被创造出来的?今天,我们就来探讨一下逆向工程这一神秘而又令人着迷的领域。 一、什么是…

Unity 接口、抽象类、具体类对象的配合使用案例

文章目录 示例1:接口(Interface)示例2:抽象类(Abstract Class)示例3:结合使用接口与抽象类示例4:多接口实现示例5:抽象类与接口结合 在Unity中使用C#编程时,接…

SSL协议是什么?关于SSL和TLS的常见问题解答

SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些相关技术称为“SSL”或“SSL/TLS”。那么…

[C/C++] -- JSON for Modern C++

JSON for Modern C(nlohmann/json)是一个流行的 C JSON 库,由德国开发者nlohmann编写。这个库提供了简洁而灵活的 API,使得在C中解析和生成JSON数据变得非常方便。 1.JSON简介 JSON(JavaScript Object Notation&…

sqli-labs-master靶场训练笔记(54-65|决战紫禁之巓)

2024.2.5 level-54 1、先判断类型和闭合类型 ?id1/0 #正常 证明不是数字型 ?id1 #错误 ?id1 -- a #正常 判断是 闭合 2、 判断列数 这里需要运气,但是根据前面50多关的经验直接猜测是3列 ?id-1 union select 1,2,3 -- a 3、爆表名&#xf…

时序数据库Influxdb查询多个字段_field同一时间的值,组成一条数据

Influxdb将表格数据多个字段_field从垂直列布局聚合成水平布局行字段。 问题 1、Influxdb 是一种时间序列数据库,在我的项目中主要用来存储换热站的测点数据的。换热站有非常多的测点,我们用Flux 语法去查询测点数据,返回的数据结构是每个测…

阿里云增加数据库访问白名单

阿里云增加数据库访问白名单 概况 我们希望在外网访问数据库时,可能会遇到无法连接的问题,这有可能是被拦截了。这时就需要去查看自己的ip有没有在白名单里面,没有的话就把ip加入到白名单。 路径 阿里云控制台-搜索RDS-进入RDS管理控制台…

每日一题——LeetCode1413.逐步求和得到正数的最小值

方法一 个人方法: 找出数组求和过程中出现的最小值,如果这个值最小都>0,那么startValue只需要取最小正数1, 反之startValue取最小值的绝对值1,那么startValuemin一定>1 var minStartValue function(nums) {l…

MTK 多帧算法集成实现流程

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、选择feature和配置feature table二、 挂载算法三、自定义metadata四、APP调用算法五、结语 一、选择feature和配置feature table 1.1 选择feature …

双面板设计的一套经验规则-笔记

过大的分布电感导致信号地干扰也就是地弹(专业名词) 还有就是输出瞬态电流导致的地弹 图中可以看到最高 0.5V 的信号地干扰,这只是单一块开发板的测试结果。如果接上外围电路,甚至面包板电路可以想象噪声水平可能会更高。 双面电路板 经验规则 下面来…

I.MX6u嵌入式linux驱动开发

1:Ubuntu 系统入门 当 Ubuntu 系统入门以后,我们重点要学的就是如何在 Linux 下进行 C 语言开发,如何使 用 gcc 编译器、如何编写 Makefile 文件等等 首先安装虚拟机软件VM: Vmware Workstation 软件可以在 Wmeare …

架构学习(五):scrapy实现自定义代理中间件

scrapy实现自定义代理中间件 前言关卡:实现自定义代理中间件代理中间件源码解析代理池自定义代理中间件 结束 前言 ip检测是比较常规的反爬手段,一般站点会限制ip的访问频率,或者根据ip的访问规律和频率来识别异常访问,从而点对点…

Stable Diffusion 模型下载:majicMIX fantasy 麦橘幻想

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 非常推荐的一个非常绚丽、充满幻想的大模型,由国人“Merjic”发布,下载量颇高。这个模型风格炸裂,远距离脸部需要inpaint以达成…

Leetcode—135. 分发糖果【中等】

2024每日刷题(113) Leetcode—135. 分发糖果 算法思想 这里可以利用贪心策略,求局部最优解,然后合并为全局最优解。具体来说,将原问题中相邻孩子的条件划分为左相邻孩子和右相邻孩子两个条件,依次求解出两…

NLP中的嵌入和距离度量

本文将深入研究嵌入、矢量数据库和各种距离度量的概念,并提供示例和演示代码。 NLP中的嵌入 嵌入是连续向量空间中对象、单词或实体的数值表示。在NLP中,词嵌入捕获词之间的语义关系,使算法能够更好地理解文本的上下文和含义。 让我们试着用…

Linux操作系统运维-Docker的基础知识梳理总结

Linux操作系统运维-Docker的基础知识梳理总结 docker用来解决不同开发人员软件调试时环境不统一的问题,保证了程序调试时运行环境的一致性。docker的设计理念便是一处镜像,处处运行,即通过产生用户软件,运行环境及其运行配置的统一…

PKI - 01 散列(Hash)函数

文章目录 PKI概述散列日产生活中的指纹的工作原理散列函数的工作原理散列函数的四大特点使用散列函数验证数据的完整性 PKI概述 PKI(Public Key Infrastructure,公钥基础设施)证书系统是一种用于保护网络通信安全的技术。它基于非对称加密算法…

自己动手打包element UI官方手册文档教程

经常用element ui朋友开发的比较郁闷,官方文档网基本上都是打不开的, 官方:https://element.eleme.io/ 一直打不开,分析下是里面用的cdn链接ssl证书无效。 就想着自己搭建一个element UI文档 自己搭建的: Element文档网…

python 动态显示数据。

界面显示动态的数据。 from time import sleep import serialimport tkinter as tklis[1,10,40] # 打开串行端口 ser serial.Serial(COM3, 9600) # 9600为波特率,根据实际情况进行调整# 创建窗口和画布 window tk.Tk() canvas tk.Canvas(window, width400, heig…