关于CUDA+Torch+TorchVision+Python环境配置问题

news2025/7/6 20:40:21

背景知识

1、GPU的并行计算能力,在过去几年里恰当地满足了深度学习的需求。在训练强化学习模型时,为了提供更好地算力和训练时间,因此需要使用GPU。
2、CUDA:是Nvidia推出的只能用于自家GPU的并行计算框架。只有安装这个框架才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。

本文主要讲一下配置这个环境的心路历程,后面再遇到类似的问题可以回到这篇进行查阅。

一、首先安装Anaconda(含解释器python(base)、numpy等一系列包)。

二、安装编译器Pycharm。

以上1和2的安装就不再赘述。

三、查看自己的cuda是否可用。

这块主要是版本一定要对应好,否则一直显示无可用Cuda。

python
import torch
print(torch.cuda.is_available())
False
print(torch.cuda.device_count())
0

第一次查看后为False,而且可用的cuda数是0,查找原因后发现是因为安装的cuda版本和已有torch版本不对应。

于是有了接下来的操作:
1、查看之前的list包,将之前的torch和torchVision进行卸载

conda list
pip uninstall  包名

2、然后查找自己的Cuda版本,win10电脑中在搜索栏检索:Nvidia控制面板——帮助——系统信息——组件。可以发现我的Cuda版本为11.6。
在这里插入图片描述
3、我的Python版本为3.8,系统为windows系统,对应的Cuda应使用11.3(我也不知道为啥要用11.3,明明Cuda的版本是11.6,此前用11.6的亲测后显示无可用的cuda,看到一个博主写的是用11.3,自己尝试后发现确实不报问题,于是就果断下载了11.3)。
下载torch和torchVision GPU版本的地址如下:

https://download.pytorch.org/whl/cu113/torch_stable.html

使用Ctrl+F搜索113,直接定位到和自己版本对用的torch(2.2GB)和torchVision(6.8MB)的whl文件,下载到本地(建议用外网下载,否则比较慢)。
在这里插入图片描述
在这里插入图片描述
4、安装以上两个whl文件。
安装使用 pip install 文件路径 即可。如下:

pip install C:/Users/XXXXX/Downloads/torch-1.10.1+cu113-cp38-cp38-win_amd64.whl
pip install C:/Users/XXXXX/Downloads/torchvision-0.13.0+cu113-cp38-cp38-win_amd64.whl

5、再一次在python解释器下查看cuda是否可用。

python
import torch
print(torch.cuda.is_available())
print(torch.cuda.device_count())

这次显示如下:
在这里插入图片描述
说明cuda和torch版本对应了。

四、训练模型

训练模型时发现开始可以正常训练,但是最终报错如下:
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
查阅资料后发现是因为自己的anaconda3文件夹底下有多个libiomp5md.dll文件导致的,删除F:\Anaconda3\Library\bin路径下的这个libiomp5md.dll文件,其他的不用管。删除后还有多个libiomp5md.dll文件,如图所示,但是再次训练时已经不报错了。
在这里插入图片描述
于是就可以正常的训练了。

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

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

相关文章

机器学习笔记之条件随机场(五)条件随机场需要解决的任务介绍

机器学习笔记之条件随机场——条件随机场需要解决的任务介绍引言回顾:条件随机场条件随机场要解决的任务引言 上一节介绍了条件随机场的建模对象——条件概率P(I∣O)\mathcal P(\mathcal I \mid \mathcal O)P(I∣O)参数形式和向量形式的表示。本节将针对条件随机场…

java多线程基础技术

1.1 进程与多线程 1、进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的 当一个程…

Mysql 数据库开发简介与选择

文章目录 前言一、为什么要使用数据库 数据库的概念为什么要使用数据库二、程序员为什么要学习数据库三、数据库的选择 主流数据库简介使用MySQL的优势版本选择四、Windows 平台下安装与配置MySQL 启动MySQL 服务控制台登录MySQL命令五、Linux 平台下安装与配置MySQL总结前言 …

【附源码】计算机毕业设计JAVA宠物收养管理

【附源码】计算机毕业设计JAVA宠物收养管理 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

go微服务框架Kratos简单使用总结

Kratos是B站开源的一款go的微服务框架,最近PS5上的 战神诸神黄昏比较火,主角就是奎托斯。这个框架的名字就取自他。 在进行框架选型时,对比了目前主流的很多go微服务框架,如Zero,最后对比之下,选择了Krato…

vector容器 (20221115)

一、vector容器 1、功能:与数组非常相似,也称为单端数组。 2、区别:数组是静态空间,vector可以动态扩展。 动态扩展:并不是在原空间之后续接新空间,而是找更大的内存空间,将原数据拷贝到新空…

Django框架的电商商城的设计与实现python语言

摘要 随着计算机技术,网络技术的迅猛发展,Internet 的不断普及,网络在各个领域里发挥了越来越重要的作用。特别是随着近年人民生活水平不断提高,电商商城给商家的业务带来了更大的发展机遇。 在经济快速发展的带动下,服…

网络读卡器开发,带你智能感知无线设备

随着物联网行业的快速发展,针对网络读卡器的技术要求也在不断地提升,为此出现一款体积小、低功耗、高度集成、性能稳定的非接触读卡器,用户不需要进行编程设计,只用发送简单命令,就能完成对卡片的读写。 网路读卡器是智…

通过DataEase行列权限设置实现数据权限管控

在企业的日常经营中,企业人数达到一定数量之后,就需要对企业的层级和部门进行细分,建立企业的树形组织架构。围绕着树形组织架构,企业能够将权限落实到个人,避免企业内部出现管理混乱等情况。而在涉及到数据分析等工作…

浮点数 C语言 IEEE754

知识内化:用自己的语言讲述一遍,把复杂的东西解释得简单透彻 计算机表示浮点数的问题:(自己分析一下这个问题) 输入是:任意一个浮点数,正无穷到负无穷,包括整数部分和小数部分 2222…

支持I2S数字音频接口;音频功放芯片NTP8835C

韩国耐福数字功放系列其NTP8835C芯片采用I2S数字输入接口, 可用于音频应用场合,例如蓝牙/WIFI音箱、音响设备,投影仪、高清电视、会议系统等。通过I2S传输数字音频信号, 能够还原和输出高保真高质量的音频信号。 NTP88…

阿里SQL又爆神作数据生态:MySQL复制技术与生产实践笔记

前言 在开源国产数据库崛起的今天,这本佳作《数据生态:MySQL复制技术与生产实践》,无疑将为MySQL在各行业的推广和使用做出贡献,这也是像我这样的从商业数据库转到开源数据库的从业者的福音。 MySQL能够成为“最流行的开源数据库”&#xf…

【数据结构】图—图的存储结构(邻接矩阵法、邻接表法、邻接多重法、十字链表法)

图的存储结构1 邻接矩阵法2 邻接表法3 十字链表法4邻接多重法1 邻接矩阵法 主要存储的是点,所以空间复杂度和点(v)有关 对象:稠密图、有向图、无向图 表示唯一、适合稠密图空间复杂度:O(v^2)无向图邻接矩阵一定是一个…

Docker环境安装OWT Server[Open WebRTC Toolkit]

Docker环境安装OWT Server[Open WebRTC Toolkit] 目录 Docker环境安装OWT ServerDocker自定义开发OWT Server wiki(照着操作会有不注意的坑):An easy way to quickly evaluate OWT with Docker image 相关文章: Ubuntu环境安装OW…

Emlog评论区显示用户操作系统与浏览器信息教程

近期有不少初入Emlog的站长来咨询Emlog程序的评论区域如何实现获取到评价用户的操作系统和浏览器信息,其实要实现该功能也很简单,而且网上也有不少类是的插件。今天,冬镜就和大家聊聊不用插件来实现获取评论用户操作系统与浏览器信息。改造前…

软件测试 -- 进阶 3 软件测试设计

我并没有什么方法,只是对于一件事情很长时间很热心地去考虑罢了。-- 牛顿 1. 设计是什么? 设计是有目标、有计划的创造和创作活动,按特定需求制定解决方案。设计指把头脑中的设想/想法通过合理的规划、周密的计划、有效的方式表达出来的过程…

【C#】生成WebAPI实现简单调用本地数据库

需求:通过C#生成WebAPI,供微信小程序调用以访问本地数据库(微信小程序部分下次再说,今天先记录一下C#生成WebAPI相关的坑与注意点)。 数据库:SQL Server Web服务器:IIS 编程语言:C# IDE:VS20…

微信|零到一打造一款与微信互通的自动聊天机器人应用

本文干货充足篇幅较长,建议收藏后阅读避免迷路。文末可获取【自动聊天机器人源码和Demo】。 本教程教大家使用即构 ZIM SDK 创建一个能与微信端互动消息的自动聊天机器人应用。ZIM SDK可广泛应用于娱乐社交、电商购物、在线教育、互动直播等多种场景下即时通讯功能实…

R语言中的函数18:readxl::read_excel(), read_xls(),read_xlsx()

文章目录read_excel(), read_xls()和read_xlsx()函数介绍实例实例1利用read_xls读取文件实例2指定读取数据的范围range实例3读取有缺失值的数据实例4read_xls和read_xlsx需要对应的文件类型实例5read_excel的使用read_excel(), read_xls()和read_xlsx()函数介绍 read_excel(),…

设计模式----单例模式

设计模式之单例模式 文章目录设计模式之单例模式一. 简介1. 什么是单例模式?2. 单例模式的应用场景?3. 单例模式的类型?二. 单例模式的几种写法1. 饿汉式2. 懒汉式3. 懒汉式(线程安全性能优化)4. 使用volatile防止指令…