YOLOv5入门实践(1)— 基础环境介绍及搭建

news2024/11/24 15:30:28

前言:Hello大家好,我是小哥谈。YOLOv5基础知识入门系列和YOLOv5源码中的参数超详细解析系列学习完成之后,接着就进入YOLOv5入门实践系列了。为了让大家能够清楚地了解如何用YOLOv5去进行实践,本篇文章就简单给大家介绍一下YOLOv5基础环境及搭建,希望大家学习之后能够有所收获!🌈 

     目录

🚀1.基础环境介绍

💥💥1.1 CUDA

💥💥1.2 cuDNN

💥💥1.3 Anconda

💥💥1.4 Python

💥💥1.5 Pycharm

💥💥1.6 Pytorch

🚀2.安装Python和Pycharm

🚀3.安装CUDA和cuDNN

💥💥3.1 CUDA的下载与安装

💥💥3.2 cuDNN的下载与安装

🚀4.安装Anaconda

🚀5.安装Pytorch

🚀6.配置YOLOv5环境

🚀1.基础环境介绍

💥💥1.1 CUDA

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

CUDA提供了对其它编程语言的支持,如C/C++、Python、Fortran等语言。只有安装CUDA才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。

CUDA在软件方面组成有:一个CUDA库一个应用程序编程接口(API)及其运行库(Runtime)两个较高级别的通用数学库,即CUFFT和CUBLAS。CUDA改进了DRAM的读写灵活性,使得GPU与CPU的机制相吻合。另一方面,CUDA提供了片上(on-chip)共享内存,使得线程之间可以共享数据。应用程序可以利用共享内存来减少DRAM的数据传送,更少的依赖DRAM的内存带宽。

CUDA的架构中引入了主机端(host)和设备(device)的概念。CUDA程序中既包含host程序,又包含device程序。同时,host与device之间可以进行通信,这样它们之间可以进行数据拷贝。

  • 主机(Host)将CPU及系统的内存(内存条)称为主机。
  • 设备(Device)将GPU及GPU本身的显示内存称为设备。
  • 动态随机存取存储器(DRAM)Dynamic Random Access Memory,最为常见的系统内存。DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。(关机就会丢失数据)

典型的CUDA程序的执行流程如下:

  1. 分配host内存,并进行数据初始化;
  2. 分配device内存,并从host将数据拷贝到device上;
  3. 调用CUDA的核函数在device上完成指定的运算;
  4. 将device上的运算结果拷贝到host上;
  5. 释放device和host上分配的内存。

💥💥1.2 cuDNN

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。

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

说明:♨️♨️♨️

CUDA与cuDNN的关系:

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。

💥💥1.3 Anconda

Anaconda指的是一个开源的Python发行版本,其包含了Conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包Conda和Python)。Anaconda利用工具/命令Conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。

这里先解释下Conda、Anaconda这些概念的差别。

  • Conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。Conda的设计理念——Conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。
  • Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。

Anaconda具有如下特点:

  • 开源
  • 安装过程简单
  • 高性能使用Python和R语言
  • 免费的社区支持

💥💥1.4 Python

Python 是由荷兰人吉多·罗萨姆于 1989 年发布的。Python 的第一个公开发行版发行于 1991 年。Python 的官方定义:Python 是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。通俗来讲,Python 是一种少有的、既简单又功能强大的编程语言,它注重的是如何解决问题而不是编程语言的语法和结构。

Python 在通用应用程序、自动化插件、网站、网络爬虫、数值分析、科学计算、云计算、大数据和网络编程等领域有着极为广泛的应用,像 OpenStack 这样的云平台就是由 Python 实现的,许多平台即服务(PaaS)产品都支持 Python 作为开发语言。近年来,随着 AlphaGo 几番战胜人类顶级棋手,深度学习为人工智能指明了方向。Python 语言简单针对深度学习的算法,以及独特的深度学习框架,在人工智能领域编程语言中占重要地位。

💥💥1.5 Pycharm

PyCharm是由JetBrains公司开发的一款Python开发工具,在Windows、Mac OS和Linux操作系统中都可以使用,是一种Python IDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。

💥💥1.6 Pytorch

PyTorch是一个开源的Python机器学习库,其前身是2002年诞生于纽约大学的Torch。它是美国Facebook公司使用Python语言开发的一个深度学习的框架,2017年1月,Facebook人工智能研究院(FAIR)在GitHub上开源了PyTorch。PyTorch不仅能够实现强大的GPU加速,同时还支持动态神经网络,这一点是现在很多主流框架如TensorFlow都不支持的。

PyTorch基于Python语言,并提供了高级的神经网络接口,可以用于构建和训练各种深度学习模型。它的设计理念是灵活性和易用性,并且提供了动态图的特性,使得用户可以根据需要自由地定义和修改计算图。在PyTorch中,计算图由张量(Tensor)和函数(Function)组成。张量是一种多维数组,类似于NumPy的数组,可以在GPU上进行加速计算。函数则表示张量之间的操作,当张量通过函数进行计算时,会构建一个计算图。这个计算图可以自动求导,即计算张量对于某个变量的导数,这对于训练神经网络非常重要。PyTorch还提供了丰富的工具和库,用于数据加载、模型构建、优化器、损失函数等等,使得用户可以快速地构建和训练各种深度学习模型。此外,PyTorch也支持分布式训练和部署到生产环境中。

PyTorch提供了两个高级功能:

  • 具有强大 的GPU加速的张量计算(如Numpy);
  • 包含自动求导系统的深度神经网络。

目前,很多知名公司都在使用PyTorch,除了Facebook之外,Twitter、GMU和Salesforce等机构也都采用了PyTorch。TensorFlow和Caffe都是命令式的编程语言,而且是静态的,即首先必须构建一个神经网络,然后一次又一次地使用相同的结构,如果想要改变网络的结构,就必须从头开始。但是对于PyTorch,通过反向求导技术,可以让你零延迟地任意改变神经网络的行为,而且其实现速度快。正是这一灵活性是PyTorch对比TensorFlow的最大优势。另外,PyTorch的代码对比TensorFlow而言,更加简洁直观,底层代码也更容易看懂,这对于使用它的人来说肯定是一件令人激动的事。


🚀2.安装Python和Pycharm

说明:♨️♨️♨️

关于Python和Pycharm的安装教程,请分别参考博客:

史上最详细的Python安装教程,小白建议收藏!

史上最详细的PyCharm安装教程,小白建议收藏!


🚀3.安装CUDA和cuDNN

windows11 版本安装 CUDA ,首先需要下载两个安装包:

  • CUDA toolkit(toolkit就是指工具包)
  • cuDNN

注:cuDNN 是用于配置深度学习使用

官方教程:♨️♨️♨️

CUDA:Introduction — cuda-installation-guide-microsoft-windows 12.2 documentation

cuDNN:Installation Guide - NVIDIA Docs

💥💥3.1 CUDA的下载与安装

(1)查看CUDA版本

如何判断自己应该下载什么版本的CUDA呢?这里介绍两种方法:

方法1:

打开nvidia控制面板  -> 选择左下角的系统信息 -> 组件

​在第3行,可以看到自己电脑支持的CUDA。

​方法2:

直接在cmd中输入

nvidia-smi

然后可以查看CUDA版本了!

(2)官网下载对应版本

下载地址:CUDA Toolkit Archive | NVIDIA Developer

根据查到的CUDA版本和计算机系统选择下载相应的安装包。

​然后就是漫长的等待了。🔖

​ (3)CUDA安装和测试

说明:♨️♨️♨️

关于CUDA的详细安装教程,请参考博客:

CUDA与cuDNN安装教程(超详细)

💥💥3.2 cuDNN的下载与安装

(1)cuDNN的下载

下载地址:CUDA Deep Neural Network (cuDNN) | NVIDIA Developer

(2)cuDNN安装与测试

说明:♨️♨️♨️

关于cuDNN的详细安装教程,请参考博客:

CUDA与cuDNN安装教程(超详细)


🚀4.安装Anaconda

说明:♨️♨️♨️

由于我已经安装完毕,所以没有再安装。没有安装的同学请参考博客:

最新Anaconda3的安装配置及使用教程(详细过程)


🚀5.安装Pytorch

说明:♨️♨️♨️

关于Pytorch的安装,请参考博客:

安装pytorch详细教程


🚀6.配置YOLOv5环境

说明:♨️♨️♨️

关于YOLOv5基础环境的配置,请参考博客:

【零基础上手yolov5】yolov5的安装与相关环境的搭建


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

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

相关文章

红队专题-从零开始VC++远程控制软件RAT-C/S-[2]界面编写及上线

红队专题 招募六边形战士队员1.课前回顾unicode编码 字符串 2.界面编程(下)对话框重载消息函数更改对话框同步更改 3.服务端上线,下线,以及客户端的资源销毁(上)添加socket 变量添加 socket 消息填补config信息创建线程函数 并运行添加Addhost添加 getIt…

C盘或用户名文件夹变成桌面后改不回去问题解决

问题:为了给C盘腾出空间,会把桌面文件夹移动到别的盘。系统自带的功能使得右击这些文件夹,属性,位置里就可以简单完成移动。 然而看似简单的操作依旧有不少人弄出问题。比如: 把桌面文件夹移动到某盘根目录&#xff0…

Python开源项目周排行 2023年第35周

#2023年第35周2023年10月3日1vizro一个用于创建模块化数据可视化应用程序的工具包。在几分钟内快速自助组装定制仪表板 - 无需高级编码或设计经验 - 创建灵活且可扩展、支持 Python 的数据可视化应用程序。使用几行简单的配置来创建复杂的仪表板,这些仪表板是利用 P…

ElfBoard,为嵌入式学习爱好者创造更具价值的学习体验

ElfBoard是飞凌嵌入式面向学习者推出的全新子品牌,旨在为嵌入式学习爱好者创造更具价值的学习体验。 ELF是"Embedded Learning Fans"嵌入式学习爱好者的首字母缩写,同时ELF也是“精灵”的意思,ElfBoard以灵动的精灵形象作为品牌Lo…

公安机关警务vr综合实战模拟训练提高团队合作能力

公安出警VR虚拟仿真培训软件是VR公司利用VR虚拟现实和web3d开发技术,对警务执法过程中可能发生的各种场景进行还原、模拟、演练,结合数据分析,实施量化考核,提高学员的心理承压、应急处突、遇袭反应和临危处置综合能力。 公安出警…

什么是 SRE?一文详解 SRE 运维体系

目录 可观测性系统 故障响应 故障复盘 测试与发布 容量规划 自动化工具开发 用户体验 可观测性系统 在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中&a…

QT:工业软件开发的首选“

QT:工业软件开发的首选,强大的GUI框架与多功能扩展" 在工业软件开发领域,主要从事自动化、机械自动化和电气自动化的人员通常使用C或C作为主要编程语言。然而,在当今互联网发展的背景下,Qt成为了C中唯一可靠的G…

项目成员积分规则

在当下的项目/团队管理种,如何让成员能清晰的看到,自己的工作、努力在团队种属于那个段位,通过这个形式,并配合其他方式去点燃成员的进步之心。以积分的形式,代替绩效考核,一些零散的想法,欢迎各…

使用Jenkins自动化部署项目

Jenkins的同类产品 Jenkins 是一款功能强大的开源持续集成/持续交付 (CI/CD) 工具,但也有一些替代品可供选择,以下是其中一些: Travis CI:Travis CI 是另一款流行的持续集成工具,可与 GitHub 集成,支持多种…

国庆前花2个月面过阿里测开岗,要个27K也不过分吧?

背景介绍 美本计算机专业,代码能力一般,之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发,第二份实习由于大三暑假回国的时间比较短(小于两个月),于是找的实…

SAP-MM-库存数量查询

想要查看整个工厂下的库存数量,例如普通库存、特殊库存,可以用MB52查看,但是导出的表格 不是ALV格式的,比较难用,而且导出的也不全是特殊库存,普通库存也被导出来了。 例如现在只想导出销售订单库存SE16N&a…

国庆回来面了个阿里拿27k出来的小哥,让我见识到了什么是天花板...

2023年堪称大学生就业最难的一年,应届毕业生人数是1076万。失业率超50%! 但是我观察到一个数据,那就是已经就业的毕业生中,计算机通信等行业最受毕业生欢迎! 计算机IT行业薪资高,平均薪资是文科其他岗位的3…

阿里云使用https获取git地址注意事项

首先是使用账号密码登录阿里云,这个账号可以使用手机号或者第三方账号注册。登录之后去下图所示地方复制 https 地址。进行拉取代码 使用https拉取代码时候,会让你重新输入一个阿里云的账号密码。如果是重新注册的账号,切记需要先去设置一下h…

Unity设计模式——原型模式

原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节 。 原型类 Prototype: abstract class P…

【python】可视化-绘制带有边权重的无向图

文章目录 需求示例数据代码实现 需求 输入数据表(矩阵),绘制无向图。 示例数据 **示例数据1:**3个特征之间的关系数据 (data1.txt) featuresfeature1feature2feature3feature110.60.8feature20.610.3feature30.80.31 **示例数据2:**4个特…

python matplotlib 显示中文

最近再弄新的服务器,结果上面画图的时候没有中文。 用下面这段代码看一下是不是支持呢? from matplotlib.font_manager import FontManager import subprocess fm FontManager() mat_fonts set(f.name for f in fm.ttflist)print (mat_fonts) output…

[UE虚幻引擎] DTCopyFile 插件说明 – 使用蓝图拷贝复制文件 (Windows)

本插件可以在虚幻引擎中使用蓝图对系统的其他文件进行拷贝复制操作。 1. 节点说明 Async Copy File ​ 异步复制文件 Param Source File : 要复制的源文件的完整路径。Param Target File : 要复制的目标文件的完整路径。Param Force Copy : 如果为true,则如果目标…

ASPICE标准快速掌握「4.3. 工作产品特性表(WPCs)」

注:标注*的通用工作产品并没有在 Automotive SPICE 过程评估模型中使用,但是为了完整性而包含它们。 01-00 【配置项】 通过配置控制所维护的项: 可包括组件、子系统、库、测试用例、编译器、数据、文档、物理媒介和外部接口版本标识得到维护以下关于项的描述应包含: 项的类…

华为云CodeArts Check代码检查插件(Cloud IDE版本)使用指南

CodeArts Check Cloud IDE代码检查插件 感兴趣的小伙伴,可以试试使用我们的CodeCheck代码检查插件:>>>CodeArts Check代码检查插件免费体验 CloudIDE插件市场里,当前CodeCheck代码检查插件是精选插件>>>CodeArts Check代码…

LED灯实验--汇编

asm-led.S .text .global _start _start: /* 1. led灯的初始化 *//* 1.1 使能GPIOE、DPIOF外设控制器的时钟 */ldr r0, 0x50000A28ldr r1, [r0]orr r1, r1, #(0x3 << 4)str r1, [r0]/* 1.2 设置PE10、PE8、PF10引脚为输出模式 */ldr r0, 0x50006000ldr r1, [r0]bic r1,…