【Xiang哥避坑指南】YOLOV5只在CPU跑不在GPU跑的问题。

2024-02-01 08:59

本文主要是介绍【Xiang哥避坑指南】YOLOV5只在CPU跑不在GPU跑的问题。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

电脑明明有GPU,深度学习视觉代码也运行起来了,为什么只在CPU跑,GPU并不占用呢,可能有的同学会有这种经历。

本人就是被困扰了一个月,不知道为什么只在CPU跑,最后偶然发现:
那可能就是CUDA、pytorch、torchvison三者版本不对应的问题,也可能是版本下错的问题。

CUDA、pytorch、torchvision版本一定要对应!!!
CUDA、pytorch、torchvision版本一定要对应!!!
CUDA、pytorch、torchvision版本一定要对应!!!(重要的事情说三遍)


这里强调一下,以下的查看不要忘记在特定虚拟环境下,或者你要运行程序/代码的环境下!(当然我们经常跑代码也要养成建立虚拟环境的好习惯。什么?不知道虚拟环境?请自行白百度!)

1.如何查看CUDA、pytorch、torchvision三者版本?

1.1 CUDA版本查看

Windows&Linux 系统下,输入命令:nvcc -V。
注意:一定要是小写、空格-V。(我的就是10.0版本的CUDA)
在这里插入图片描述

1.2 Pytorch版本查看

这里介绍两种方法:
A:

//终端-输入pythonimport torch
print(torch.__version__) 
#上方的_是两个 杠杠

在这里插入图片描述

B:

// 终端输入python
pip list

在这里插入图片描述
再次强调:+cu101是适应于CUDA10.1,同理,+cu102适应于CUDA10.2,以此类推。
(有的时候这个版本如果安装的是+CPU的,也会不能在GPU跑,因为默认就是在CPU跑的。)

1.3 torchvision版本查看

方法与1.2一致,这里只做说明,不做演示。
A:

//终端-输入pythonimport torchvision
print(torchvision.__version__) 
#上方的_是两个 杠杠

在这里插入图片描述
B:
同1.2 B,已经在截图里面。

好了,到此呢,我们就知道CUDA、Pytorch、torchvision三者的版本啦~
下面就要开始确认三者版本是否兼容了!

2.CUDA、pytorch、torchvision版本对应关系是?

方法A:
在这里插入图片描述
(转自:https://blog.csdn.net/weixin_43528564/article/details/120745593)谢谢~

方法B:
官网查看: Pytorch官网.
查看方法:
在这里插入图片描述

3.版本确定了,如何安装&下载?

a.这里不介绍CUDA的安装,如果大家已经安装好了CUDA,那么建议删除错误的pytorch和torchvision版本,CUDA的删除和安装更加复杂。
b.BUT,CUDA的版本要看显卡的型号,不过大家如果能装成功CUDA这一条应该也不存在什么问题。

方法1:

下载: 版本大全网站(包含Pytorch&torchvision).
这个方法是使用

版本很多,大家可以利用Ctrl + F来进行快速定位。
下面这个就是适合CPU的,安装以后就是+CPU。

在这里插入图片描述
下面这张就是适用于CUDA10.1的Pytorch-1.7.0版本。
在这里插入图片描述
torchvision同理,就不过多赘述了。

安装(Pytorch & torchvision同理):

点击要下载的版本后会自动下载,下载的是一个.whl文件,需要用pip命令来安装:

// 在下载的路径下打开终端窗口
pip torch-1.8.1+cu111-cp38-cp38-win_amd64.whl
//回车后自动安装

方法2(pip 安装):

// 在下载的路径下打开终端窗口
//(有虚拟环境记得打开虚拟环境)
pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 #大家可以根据自己的需要变更版本
//回车后自动安装

如果网速不好,可以加一个镜像(pip安装可以默认镜像,修改系统文件,大家有需要可以自行CSDN):

pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 -i https://pypi.tuna.tsinghua.edu.cn/simpl
//回车后自动安装

好啦,这次踩坑经历就分享到这里~

有更多疑问可以私信或者评论,我都会回复的。

下一期打算出个NVIDIA JETSON TX2 运行YOLOV5踩坑之旅~

这篇关于【Xiang哥避坑指南】YOLOV5只在CPU跑不在GPU跑的问题。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666760

相关文章

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2