前言: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程序的执行流程如下:
- 分配host内存,并进行数据初始化;
- 分配device内存,并从host将数据拷贝到device上;
- 调用CUDA的核函数在device上完成指定的运算;
- 将device上的运算结果拷贝到host上;
- 释放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的安装与相关环境的搭建