YOLOv7环境配置的一些细节

news/2024/7/11 1:02:19 标签: YOLO, pytorch, 深度学习, 神经网络, 环境配置

        评论区和私信问我问题的同学们不要急,你们的问题我一直在研究,只是还没成功(>﹏<),如果完成了我会第一时间发出来并通知你的(≧∇≦)/

        本文将讲解YOLOv7环境配置的一些细节(YOLOv5环境配置也适用,之前在配gpu版本cuda出现问题的同学可以参考)。

        基本操作可以参考下面这篇文章进行,我会结合自己配置过程中的问题进行补充。

YOLOv7保姆级教程(个人踩坑无数)----训练自己的数据集_AmbitionToFree的博客

基本操作

1.下载源码

mirrors / WongKinYiu / yolov7 · GitCode

2.创建环境

        基本命令如下,xxx表示环境名称,python=3.7 表示用3.7版本的python解释器(解释器版本不建议太高,因为有些python库没有及时更新,可能会产生一些奇怪的报错)

conda create -n xxx  python=3.7

3.导入库

        (1) 先激活环境(yolov7_flask是我的环境名,你换成自己的就行)

conda  activate yolov7_flask

        (2) cd切换至刚才下载解压后的yolov7-main文件夹中

         (3) 一键导入库(这一步先别急着运行,先往后看)

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 

        如果不想用gpu加速,只用cpu的话直接运行上面命令即可(如果没有一次成功,就多运行几次,直到所有库满足为止)。

        如果想用gpu进行加速,一定要注意torch和torchvision两个库的版本对应关系,参考下面这篇文章,后面展示的是我安装的版本,你可以根据对应关系表选择适合自己环境的库版本。

PyTorch中torch、torchvision、torchaudio版本对应关系_Liekkas Kono的博客

       由于 requirements.txt 中下载这两个库的命令是这样的( >= ),所以默认会安装最新版本的torch(除了1.12.0)和torchvision(除了0.13.0)

        但是这两个版本不一定是对应的,所以有下面两种解决办法

        ① 更改requirements.txt文件,用等于(==)限定版本,下面给出我安装的版本(torch 1.11.0,torchvision 0.12.0)另外推荐大家再安装一个库(torchaudio 0.11.0),有些工程会用到。因此可以将requirements.txt文件中那两行改成下面这样,然后再运行上面的命令导入库即可。

         ② 先运行命令将库全部导入后,把torch、torchvision、torchaudio 卸掉重装成对应版本

         卸载库的命令

pip uninstall torch
pip uninstall torchaudio
pip uninstall torchvision

         安装库命令(这里给出的是我安装的版本)

pip install torch==1.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install torchvision==0.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install torchaudio==0.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

配置GPU版本的cuda

       按照上述方法配置完成后,应该能够用cpu方式运行yolov7代码了,但是想用gpu进行加速,需要安装gpu版本的torch。先给结论,不推荐使用口令方式进行安装(试了很多次没成功),推荐先去镜像网站上下载文件,本地安装。

       注意,本机cuda版本可以高于(不低于)安装pytorch时的cuda版本,这两个不一定要相等,而且通常较低版本的cuda遇到的问题会少一些(可能是一些python的库没有及时更新,无法和高版本cuda兼容的原因)。我电脑的cuda版本是11.8,安装pytorch的cuda版本是11.3,最后能够成功运行。

        镜像网址如下

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

       必须在网站上下载正确版本的文件,操作系统、python解释器版本、cuda版本都要对上。

       我想在windows上配置环境,cuda版本是11.3,python解释器版本是3.7,torch版本是1.11.0,torchaudio版本是0.11.0,torchvision版本是0.12.0 所以下载下面这三个文件。

torchaudio-0.11.0+cu113-cp37-cp37m-win_amd64.whl

torchvision-0.12.0+cu113-cp37-cp37m-win_amd64.whl

torch-1.11.0+cu113-cp37-cp37m-win_amd64.whl

       这三个文件我放到网盘中,如果和我版本一致的同学直接下载就行(网站上找确实挺容易看花眼的)。

                链接:https://pan.baidu.com/s/1AC90HJ8SkZhwk3m_xMRYdA

                提取码:ntt5

       下载完后把这三个文件放在一个C盘的文件夹中(之所以是C盘,是因为在我的电脑上用cd的方法只能进入C盘的文件夹,反正装完以后把这个文件夹删了就行无所谓),终端先激活环境,然后cd进入这个文件夹,pip install +文件名即可(也可以打文件名称前几个字母,然后用tab键自动补齐),下面是几个库的安装显示。

torch_gpu安装
torchaudio_gpu安装
torchvision_gpu安装

       完成后用pip list命令查看

        三个出现cu113(因为我cuda版本是11.3)说明gpu版本安装成功!

       下面打开工程添加环境(如何添加环境可以看我之前的博客)就行,运行后可以成功使用gpu进行推理!

常见报错

1. 类似这样的报错:

ERROR: torch-1.11.0+cu113-cp38-abi3-win_amd64.whl is not a supported wheel on this platform.

        镜像网站上版本没有下载正确,操作系统、python解释器版本、cuda版本、库版本至少有一个没对应上,下载正确的文件进行操作就行


 

求学路上,你我共勉(๑•̀ㅂ•́)و✧  


http://www.niftyadmin.cn/n/284696.html

相关文章

《花雕学AI》AI时代来临,互联网教父凯文·凯利给你50条生存指南:5000天后的世界会是什么样?

你知道凯文凯利吗&#xff1f;他是《连线》杂志的创始人之一&#xff0c;被誉为“世界互联网教父”&#xff0c;他的预言和观点影响了无数人的思考和行动。他曾经预言过互联网、社交媒体、区块链等技术的发展和变革&#xff0c;而现在&#xff0c;他又给我们带来了一个全新的预…

简单理解什么是序列化

为什么要序列化 序列化的目的就是为了对象可以在网络层进行传输&#xff0c; 比如通过后端传给前端数据。 什么是序列化 我们以Java为例。 序列化就是把对象转化为可传输的字节序列过程&#xff0c;这个字节序列可以是字符串&#xff0c;比如JSON格式的字符串&#xff0c;把…

【CSS笔记】CSS动画效果(2d、3d)之渐变色、过渡、变换、平移、缩放、旋转、倾斜、关键帧动画

这篇文章&#xff0c;主要介绍CSS动画效果&#xff08;2d、3d&#xff09;之渐变色、过渡、变换、平移、缩放、旋转、倾斜、关键帧动画。 目录 一、2d动画 1.1、渐变色 &#xff08;1&#xff09;线性渐变色 &#xff08;2&#xff09;径向渐变色 &#xff08;3&#xff0…

2. 云计算的落地实践(上)

本章讲解知识点 云计算如何落地实践物理机与虚拟机容器虚拟技术Docker 横空出世PaaS 时代来临业界实践1. 云计算如何落地实践 我们上一节讲了有关云计算的概念,那么我们思考一下,云计算在现实中是如何落地实践的呢? 如今云计算落地实践中,已经形成了一套有效的体系。一家…

海洋测绘设备使用总结快讯(2023年5月)

本文主要记录最近海洋测绘设备使用过程中遇到一些小问题和解决方法。 1、侧扫声纳绞车的事情 从去年10月到今年3月一直有一个困扰我们的问题&#xff1a;我们侧扫声纳的铠装缆在租用广西北海渔船且用发电机发电的情况下&#xff0c;能连接Klein3000和Klein4000拖鱼&#xff0…

认识Cookie和Session

一个网站&#xff0c;怎么证明你来过&#xff1f; 客户端 服务端 1.服务端给客户端一个信件&#xff0c;客户端下次访问服务端带上信件就可以了&#xff1b;cookie 2.服务器登记你来过了&#xff0c;下次你来的时候我来匹配你&#xff1b;session 现在我们来了解co…

接口优化的策略

1.批处理 批量思想&#xff1a;批量操作数据库&#xff0c;这个很好理解&#xff0c;我们在循环插入场景的接口中&#xff0c;可以在批处理执行完成后一次性插入或更新数据库&#xff0c;避免多次IO。 //批量入库 batchInsert();List的安全操作有以下几种方式&#xff1a; 使…

引发C++程序内存错误的常见原因总结与分享

目录 1、概述 2、变量未初始化 2.1、变量未初始化的场景说明