YOLOv5入门实践(1)——手把手带你环境配置搭建

简介: YOLOv5入门实践(1)——手把手带你环境配置搭建

前言

这两天我将pycharm社区版换成了专业版,也顺带着把环境从CPU改成了GPU版,本篇文章也就是我个人配置过程的一个简单记录,希望能够帮到大家啦~

  🍀本人YOLOv5源码详解系列:  

YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析

YOLOv5源码逐行超详细注释与解读(2)——推理部分detect.py

YOLOv5源码逐行超详细注释与解读(3)——训练部分train.py

YOLOv5源码逐行超详细注释与解读(4)——验证部分val(test).py

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

YOLOv5源码逐行超详细注释与解读(6)——网络结构(1)yolo.py

YOLOv5源码逐行超详细注释与解读(7)——网络结构(2)common.py



一、了解所需配置

1.1 CUDA

2006年,NVIDIA公司发布了CUDA(Compute Unified Device Architecture),是一种新的操作GPU计算的硬件和软件架构,是建立在NVIDIA的GPUs上的一个通用并行计算平台和编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序,利用GPUs的并行计算引擎来更加高效地解决比较复杂的计算难题。它将GPU视作一个数据并行计算设备,而且无需把这些计算映射到图形API。操作系统的多任务机制可以同时管理CUDA访问GPU和图形程序的运行库,其计算特性支持利用CUDA直观地编写GPU核心程序。

1.2 cuDNN

cuDNN是NVIDIACUDA®深度神经网络库,是GPU加速的用于深度神经网络的原语库。cuDNN为标准例程提供了高度优化的实现,例如向前和向后卷积,池化,规范化和激活层。

全球的深度学习研究人员和框架开发人员都依赖cuDNN来实现高性能GPU加速。它使他们可以专注于训练神经网络和开发软件应用程序,而不必花时间在底层GPU性能调整上。cuDNN的加快广泛使用的深度学习框架,包括Caffe2,Chainer,Keras,MATLAB,MxNet,PyTorch和TensorFlow。已将cuDNN集成到框架中的NVIDIA优化深度学习框架容器,访问NVIDIA GPU CLOUD了解更多信息并开始使用。

1.3 Anconda

Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。

Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等

1.4 pycharm

pycharm是一个用于计算机编程的集成开发环境,主要用于python语言开发,并支持使用Django进行网页开发。简单来说就是人工智能的便捷语言。

1.5 pytorch

PyTorch是一个开源的Python机器学习库,其前身是2002年诞生于纽约大学 的Torch。它是美国Facebook公司使用python语言开发的一个深度学习的框架,2017年1月,Facebook人工智能研究院(FAIR)在GitHub上开源了PyTorch。


二、安装CUDA 和cuDNN

官方教程

CUDA:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html

cuDNN:Installation Guide :: NVIDIA Deep Learning cuDNN Documentation

2.1 CUDA的下载与安装

1.首先查看自己CUDA的版本,有以下两种方法:

(1)打开nvidia(桌面右键)->选择左下角的系统信息->组件

(2)直接在cmd中输入

nvidia-smi

这里就可以直接查看啦

 

2.然后开始进入官网下载对应版本,下载地址→  官方驱动 | NVIDIA

根据自己查到的版本下载对应既可。

然后就是漫长的等待ing

3.下载完了就开始安装

点击下一步

这两个可以不用勾选

4.查看环境变量

点击开始-->搜索高级系统设置-->查看环境变量

【如果没有需要自己添加】

一共四个系统变量,都是自动生成的,但是有时后两个系统变量可能不会自动生成,需要自己添加上去,添加时注意路径。

5.验证CUDA是否安装成功

win+r,运行cmd,输入

1. nvcc --version 
2. OR
3. nvcc -V

即可查看版本号

输入

set cuda

即可查看 CUDA 设置的环境变量

至此,CUDA 就已安装完成。但是在完成张量加速运算时还需要cuDNN的辅助,所以接下来我们来安装cuDNN。


2.2 cuDNN的下载与安装

1.查看与CUDA对应的cuDNN版本

2.在官网上下载。官网地址→cuDNN Download | NVIDIA Developer

点击注册

 注册成功

 3.开始下载

4.解压文件

我们下载后发现其实cudnn不是一个exe文件,而是一个压缩包,解压后,有三个文件夹,把三个文件夹拷贝到cuda的安装目录下。

cuDNN 其实是 CUDA 的一个补丁,专为深度学习运算进行优化的。然后再添加环境变量

5.添加至系统变量

往系统环境变量中的 path 添加如下路径(根据自己的路径进行修改)

7.验证cuDNN是否安装成功

win+r,启动cmd,cd到安装目录下的.\extras\demo_suite,输入

原目录.\extras\demo_suite

然后分别输入.\bandwidthTest.exe.\deviceQuery.exe(进到目录后需要直接输“bandwidthTest.exe”和“deviceQuery.exe”)

.\bandwidthTest.exe
.\deviceQuery.exe

得到下图:

至此,CUDA和cuDNN已全部安装完毕~


三、安装Anaconda

因为我的电脑已经有了Anaconda ,所以没有再安装。没有安装的可以看看这个教程:

最新Anaconda3的安装配置及使用教程(详细过程)_HowieXue的博客-CSDN博客


四、安装pytorch

同样,pytorch我电脑上也安装过了(不然咋出的专栏呢(手动狗头))。没有安装的推荐大家看我同门的这篇文章,步骤非常详细:Win11上Pytorch的安装并在Pycharm上调用PyTorch最新超详细_win11安装pytorch


五、配置YOLOv5环境

1.yolov5的源码下载

下载地址:mirrors / ultralytics / yolov5 · GitCode

方法一:git clone到本地本地仓库

[指令]:git clone https://github.com/ultralytics/yolov5

方法二:直接安装压缩包

没有安装 git 的话,可以直接点击“克隆”下载压缩包

2.预训练模型下载

为了缩短网络的训练时间,并达到更好的精度,我们一般加载预训练权重进行网络的训练。

YOLOv5给我们提供了几个预训练权重,我们可以对应我们不同的需求选择不同的版本的预训练权重。在实际场景中是比较看这种速度,所以YOLOv5s是比较常用的。

将安装好的预训练模型放在YOLO文件下。

3.安装yolov5的依赖项

首先创建虚拟环境并激活。conda常用指令如下:

  • 创建虚拟环境:
conda create -n [虚拟环境名] python=[版本]

点“y”

  • 显示虚拟环境:
conda env list

  • 激活虚拟环境:
conda activate + [虚拟环境名]

4.安装pytorch-gup版的环境

由于pytorch的官网在国外,下载相关的环境包是比较慢的,所以我们给环境换源。在pytorch环境下执行如下的命名给环境换清华源。

1. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
2. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
3. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
4. conda config --set show_channel_urls yes

这里要注意网速一定要好,不然就总报错。下图就是本人血泪史。

然后就安装完啦

打开我们下载好的源码,点击设置setting

按以下步骤就OK啦!


六、测试

1.我们先运行detect.py

这时会发现出现错误:

AttributeError: 'Upsample' object has no attribute 'recompute scale_factor'

解决方法:

点进蓝色的文件里下图对应位置,更改forward函数,复制一遍,去掉下面一行的代码

再点击run,结果就保存在runs的detect文件下了


2.我们再运行train.py

同样会发生报错

0SError: [winError 1455]页面文件太小,无法完成操作。Error loading"D:\Anaconda3\envslyolov5-6.1lib\site-packages torch\lib\cudidTT"one of its dependencies

这就是因为我们batchsizeworkers设置太大了的原因

解决方法:

找到train.py的parse_opt()函数,将对应batchsizeworkers参数调小,如下图:

(你以为这样就完了吗?No!555~)

接着又会出现下面的错误:

OMP: Hint This means that multiple copies of the OpenMp runtime have been linked into theThat is dangerous, since it can degrade performance or cause incorrect results..

解决方法:

在import os下面加入

os.environ['KMP_DUPLICATE_LIB_OK']='TRUE'

(这下没错了吧?你想多了~)

然后又会出现这样的错误:

RuntimeError: resutt type float can't be cast to the desired output type ._int64

解决方法:

首先进入loss.py文件,将anchors = self.anchors[i]改为

anchors, shape = self.anchors[i], p[i].shape

接着往下翻,将indices.append((b, a, gj.clamp_(o, gain[3] - 1), gi.clamp_(0, gain[2] - 1))改为

indices.append((b, a, gj.clamp_(0, shape[2] - 1), gi.clamp_(0, shape[3] - 1)))

到这终于能运行啦!撒花✿✿ヽ(°▽°)ノ✿

(训练时错误本来就有很多,但是错误原因网上都能找到的哦~)


到此为止,我们的环境就配好了。

本篇文章是我通过录屏复盘总结的,可能有一些地方有遗忘,大家要是配置过程中有问题还是要看看大佬们的教程(感谢大佬们!) 好了,我这个小白先撤了~下一篇再见啦!


本文参考:

CUDA与cuDNN安装教程(超详细)_kylinmin的博客-CSDN博客

【零基础上手yolov5】yolov5的安装与相关环境的搭建_罅隙`的博客-CSDN博客

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
6月前
|
SQL Java 开发工具
若依矿建部署教程
若依矿建部署教程
61 0
|
自然语言处理 数据库 C语言
【视频】入门实战:MiniOB 概述和环境搭建 | 学习笔记
快速学习【视频】入门实战:MiniOB 概述和环境搭建
【视频】入门实战:MiniOB 概述和环境搭建 | 学习笔记
|
1月前
|
PyTorch 算法框架/工具 Python
yolov5的完整部署(适合新人和懒人,一键安装)
这篇文章为新人和希望简化部署过程的用户介绍了如何一键安装和配置YOLOv5环境,包括安装Anaconda、设置镜像源、安装PyCharm、创建虚拟环境、下载YOLOv5项目、安装依赖以及在PyCharm中配置和运行项目。
682 0
yolov5的完整部署(适合新人和懒人,一键安装)
|
3月前
|
人工智能 API 知识图谱
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
本文介绍了使用不同模型和平台体验GraphRAG的过程。首先通过OpenAI的GPT-4O Mini模型对沈从文的《边城》进行了分析,展示了如何安装GraphRAG并配置参数,最终实现了对文本的有效查询。随后,文章探讨了在国内环境下使用SiliconCloud作为替代方案的可能性,以《三国演义》为例,演示了使用SiliconCloud模型进行相同操作的步骤。此外,还讨论了使用本地模型如Ollama和LM Studio的可能性,尽管受限于硬件条件未能实际运行。最后,提出了混合使用在线对话模型API与本地或在线嵌入模型的方法,并列举了一些能够使GraphRAG流程跑通的大模型。
123 10
使用SiliconCloud尝试GraphRag——以《三国演义》为例(手把手教程,适合小白)
|
5月前
|
IDE Java 关系型数据库
SpringBootWebProject学习1、环境搭建
SpringBootWebProject学习1、环境搭建
40 1
|
运维 Kubernetes 监控
K8S学习-当我们部署应用的时候都发生了什么?(第一篇)
第一篇笔记定的主题是“调度-当我们部署应用的时候都发生了什么?”,先从大的框架上记录一下K8S的架构与原理;对于卷、网络、configmap等组件会放在第二篇。初学者级别的学习笔记,有问题的地方大佬们及时勘误。
31328 17
K8S学习-当我们部署应用的时候都发生了什么?(第一篇)
|
运维 Kubernetes 应用服务中间件
k8s 基础&环境搭建
k8s 基础&环境搭建
211 0
k8s 基础&环境搭建
|
IDE Shell 数据安全/隐私保护
手把手教你搭建ELK-新手必看-第二章:搭建ES
手把手教你搭建ELK-新手必看-第二章:搭建ES
191 0
手把手教你搭建ELK-新手必看-第二章:搭建ES
|
机器学习/深度学习 自然语言处理 并行计算
Pytorch学习系列教程:入门简介
新的一年还是要肝起来啊,这个公众号节前节后沉寂了快两个月了,许久没更新原创推文,自己感觉不能再这样堕落下去了。所以最近一直在思考写些什么推文:既要符合当下工作所需,倒逼成长;也要于广大读者有益,而非单纯的推销运营。 于是,终于决定“染指”深度学习方向,并打算先更新一波Pytorch学习教程。当然,这会是一个系列。
258 0
Pytorch学习系列教程:入门简介
|
分布式计算 资源调度 Hadoop
二十三、HadoopHA环境搭建(保姆篇,手把手搭建)
二十三、HadoopHA环境搭建(保姆篇,手把手搭建)
二十三、HadoopHA环境搭建(保姆篇,手把手搭建)
下一篇
无影云桌面