【YOLOV5 入门】——环境配置(Miniconda/Pytorch/YOLOv5/PYPI镜像源)

声明:笔记是毕设时根据B站博主视频学习时自己编写,请勿随意转载!

计划:

入门篇:环境安装、模型检测、构建自定义数据集、训练数据集、可视化界面搭建、Web系统搭建。拓展篇:使用服务器训练、使用pycharm和VScode。进阶篇:修改模型、模型结构原理。部署篇:模型部署。


一、环境安装

友情提示:安装过程中请别关闭cmd!

1、Miniconda环境管理器

下面内容是有关miniconda环境管理器和集成开发环境(IDE)的关系,可作为拓展:

  • Miniconda:

    • Miniconda是一个轻量级的Anaconda发行版(无太多内置包),用于管理Python环境和软件包。它允许你在不同的项目中创建独立的Python环境,并轻松地安装、更新和管理各种Python包和依赖项。
    • 对于使用PyTorch和YOLOv5的项目,你可以通过Miniconda创建一个独立的Python环境,并在该环境中安装所需的PyTorch和其他相关软件包,以避免与其他项目的依赖冲突
  • PyCharm:

    • PyCharm是一款流行的Python集成开发环境(IDE),提供了丰富的功能和工具,帮助开发者编写、调试和管理Python代码
    • 通过PyCharm,你可以更轻松地创建、组织和管理Python项目,并利用其强大的代码编辑、调试和版本控制功能来提高开发效率。
    • 对于使用PyTorch和YOLOv5的项目,PyCharm可以作为一个强大的开发工具,帮助你更好地编写和调试代码,以及管理项目文件和依赖项。

Miniconda用于管理Python环境和依赖项,而PyCharm则用于开发、调试和管理Python项目。它们与PyTorch和YOLOv5的关系是在项目开发过程中提供便捷的环境和工具支持,从而更高效地进行深度学习模型的开发和应用。

Minicondaicon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

选上面那个与up主一致的版本下载,双击安装尽量在C盘,路径不要出现非英文和空格。

推荐选中第二项将其添加到PATH

最后安装完成,可取消下图的两个选项,点击Finsh。

打开cmd输入下面命令,创建一个名字为yolov5的环境,python版本是3.8,回车

conda create -n yolov5 python=3.8

提示需要安装一些包,输入“y”再回车

环境创建完毕,然后激活环境(每次进cmd都要先激活),输入以下命令再回车:

conda activate yolov5


2、PYPI镜像源

激活完成(先别关闭cmd),下面配置一个国内的PYPI镜像,以便于后续下载python的一些包:

PYPI镜像安装帮助icon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/help/pypi/这里我们选取上面安装帮助的这段代码:(输入到cmd)

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple


3、Pytorch框架

PyTorch是一个基于Python的开源机器学习库,它能够提供强大的GPU加速功能,以及内置的自动微分系统,可帮助开发人员更快地进行实验和建立神经网络模型。PyTorch由Facebook AI研究团队维护和开发,因其易于使用和灵活的API以及动态计算图的特点而受到广泛欢迎和关注。

YOLOv5是基于PyTorch框架开发的,安装PyTorch是为了更好地运行YOLOv5算法。PyTorch提供了丰富的功能和API,使得训练和推理深度学习模型变得更加简单和高效。利用其强大的GPU加速功能,加快YOLOv5模型的训练和推理速度。此外,PyTorch还提供了丰富的工具和库,帮助你更好地管理数据、设计模型以及进行实验和评估。Pytorch拓展如下:

  •  PyTorch核心是一个张量计算库,可以高效地处理矩阵计算、卷积和其他数学运算。
  • 也支持CPU和GPU计算,提供了方便实用的工具和函数,以便编写神经网络模型和训练。
  • 提供了强大的自动微分系统,可以轻松地计算梯度。
  • 同时支持动态计算图,动态计算图有利于减少模型构建的复杂性,并令开发人员更加深入地了解模型的计算过程。
  • 具有易于使用、灵活的API和出色的计算性能,因此被广泛应用于自然语言处理、计算机视觉和其他人工智能领域的研究和应用中。

Pytorch官网icon-default.png?t=N7T8https://pytorch.org/可见最新已经更新到2.2.1了,但YOLOv5用不到这么高的版本,点击下面的“Previous version of Pytorch”

这里选择1.8.2版本Wheel里面的pip安装方法(不推荐conda install的安装形式)。注:如果只有CPU就选择第三个,有显卡的可第一个第二个(具体什么型号的显卡对应第1个还是第2个一定要实现调查清楚)

附:查看显卡类型如下,我这个intel的显卡网上说不支持CUDA,只有英伟达NVIDIA显卡的支持(见最后关于CUDA的拓展部分),我安装了CPU版本的。

将对应的安装命令输入到cmd框,但是我这个报错,但up主不推荐高版本的说训练时会遇到问题,那重新选了1.9.0版本的就行

conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cpuonly -c pytorch


4、YOLOv5检测算法

YOLO(You Only Look Once)是一种基于深度学习的目标检测算法,可以在一次前向传递中直接从图像中检测所有物体的位置和类别。特点是速度快,可以在CPU上实时处理视频。它采用全卷积神经网络,可以在一个端到端的过程中识别整个图像中的所有物体。

与传统的先检测再分类不同,YOLO是一个直接的目标检测算法,可以显著减少地址传递,实现实时的目标检测。不过,与其他检测算法相比,YOLO的准确度相对较低,因为它需要在各种尺度下检测物体,而且对于小物体检测效果不太好

YOLOv5 是一种用于目标检测的深度学习模型,是YOLO(You Only Look Once)系列的最/较新版本,由Ultralytics团队于2020年开发的,其主要目标是提高目标检测的速度和准确性。相比于之前的版本,YOLOv5在多个方面进行了改进,包括网络结构、训练策略和推理速度

1、采用了一些新技术来提高训练和推理的效率,例如自动数据增强和模型压缩等。
一些新的技术来提高模型的鲁棒性和泛化能力,例如采用新的数据增强技术和正则化方法等。
采用了更深的网络结构和更高级的特征提取技术,从而使其在目标检测任务上表现更好。
2、相比YOLOv4具有更简单的网络结构,但在速度和准确性上表现相当,甚至在某些情况下略有提升。
3、相比YOLOv3具有更好的性能和速度。YOLOv3在速度和准确性上存在一些瓶颈。

YOLOv5官方githubicon-default.png?t=N7T8https://github.com/ultralytics/yolov5点进右边Releases的v7.0-YOLOV5版本:

下滑下载Source code(zip)

可以解压到桌面,打开里面的requairments记事本文件

修改numpy和pillow的版本(更改时一定要用英文,因为这个报错我搞了好久),并注释掉torch和torchvision(因为之前已经安装了符合要求的版本,自动安装可能会默认成cpu版本):

保存txt记事本,下面可以执行该requirements文件。首先进入该文件夹(一定要保证环境是激活状态即前面有环境名yolov5)

pip install -r requirements.txt

安装完成,到这里基本可以认为环境安装完成

二、模型初步检测(检测示例)

可以进行一个模型检测的实例:

上面会先弹出你的torch版本可以看到我的时cpu版本,这个下载太慢可以停下,复制Downloading链接到网页下载,把下载好的文件粘贴在yolov5-7.0的文件夹里:

退出刚才下载太慢的界面(刚才已经通过网页下载完毕),重新执行模型检测命令

检测完成,它结果保存再runs\detect\exp2中,可以点开查看一下:

本期就到这里,下期继续学习!感谢你这么好看还关注柯宝!

三、拓展知识

但是当系统没有GPU设备,或者不需要利用GPU进行加速计算,选择安装CPU版本的PyTorch来满足需求,则不涉及CUDA。我本次的安装就是这样。

CUDA简介

CUDA(Compute Unified Device Architecture,计算统一设备架构)是由英伟达公司开发的一种并行计算平台和编程模型,它可以便捷地将 GPU 看作泛化的并行处理器,用于加速计算密集型应用程序

CUDA 平台的核心概念是线程块(thread block)、网格(grid)和 GPU 上的共享内存(shared memory)线程块是指在 GPU 上同时运行的一组线程,而网格则是包含若干个线程块的结构。CUDA 提供了丰富的函数库,包括矩阵操作、图像处理、快速傅立叶变换等,使开发人员可以方便地编写并行化的算法。而共享内存则是在线程块内用于共享数据的内存空间,通过合理地使用共享内存,可以使并行程序的性能进一步提升。

CUDA 的主要应用领域包括科学计算、计算机视觉、深度学习和游戏等,CUDA 已经成为了 GPU 计算领域最为流行的开发平台之一。

CUDA和Pytorch的关系

CUDA(Compute Unified Device Architecture)是由NVIDIA提供的并行计算平台和编程模型,用于利用GPU进行通用目的计算。而PyTorch是一个基于Python的深度学习框架,提供了丰富的工具和API来构建、训练和部署深度学习模型。关系体现在下面几方面:

  • GPU加速

    • PyTorch可以利用CUDA来实现在GPU上进行加速计算。通过PyTorch中提供的torch.cuda模块,可以轻松地将张量和计算操作移动到GPU上执行,从而加快深度学习模型的训练和推理速度。
    • CUDA提供底层的GPU编程接口和并行计算能力,PyTorch利用这些接口和能力来实现高效的GPU加速。
  • 深度学习库的支持

    • CUDA是许多深度学习框架基础(包括PyTorch),这些框架在GPU上执行计算时通常会使用CUDA来实现。
    • PyTorch内置了对CUDA的支持,因此开发者可以在PyTorch中直接利用CUDA来加速深度学习任务,而无需深入了解CUDA的底层细节
  • 硬件依赖

    • PyTorch的CUDA支持依赖于NVIDIA的GPU硬件。只有安装了NVIDIA的显卡和相应的CUDA驱动程序后,才能在PyTorch中使用CUDA进行GPU加速计算。

综上所述,CUDA提供了底层的GPU编程接口和并行计算能力PyTorch利用CUDA来实现在GPU上进行深度学习模型的高效计算。因此,要充分利用PyTorch的GPU加速功能,需要确保系统中安装了NVIDIA的显卡,并配置好相应的CUDA驱动程序。

往期精彩

STM32专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/E2F88

OpenCV-Python专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zK1jV

AI底层逻辑专栏(付费9.9)icon-default.png?t=N7T8http://t.csdnimg.cn/zic0f

机器学习专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/SjIqU电机控制专栏(免费)icon-default.png?t=N7T8http://t.csdnimg.cn/FNWM7 

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

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

相关文章

|行业洞察·趋势报告|《2024年时尚潮流趋势洞察-31页》

报告内容的详细解读: |趋势洞察库| 关注我 主页个人介绍 查看完整报告 1. 新中式潮流 定义与特点:新中式风格是将传统文化元素与现代审美相结合的一种风格,它在服装、美妆、美食和家居等多个领域都有广泛的应用。热度分析:新中…

学习JavaEE的日子 Day32 线程池 上

Day32 线程池 1.引入 一个线程完成一项任务所需时间为: 创建线程时间 - Time1线程中执行任务的时间 - Time2销毁线程时间 - Time3 2.为什么需要线程池(重要) 线程池技术正是关注如何缩短或调整Time1和Time3的时间,从而提高程序的性能。项目中可以把Time…

Grafana实时监控minio的极简方法

背景 想监控一下minio的部分信息. 使用过程中需要关注的内容挺多的. 只看简单的node感觉已经不够了. 所以想监控易一下. ERLANG 复制 全屏 方式和方法 minio其实集成了prometheus 支持的监控指标 只需要在配置文件中放开就可以了. 虽然可以使用mc 的命令 create beartoken 但…

002-基于Pytorch的手写汉字数字分类

本节将介绍一种 2.1 准备 2.1.1 数据集 (1)MNIST 只要学习过深度学习相关理论的人,都一定听说过名字叫做LeNet-5模型,它是深度学习三巨头只有Yann Lecun在1998年提出的一个CNN模型(很多人认为这是第一个具有实际应用…

ARMv9新特性:虚拟内存系统架构 (VMSA) 的增强功能

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 权限索引 2022 ARM引入了一种新的控制内存权限方法。 不再是直接在转换表条目 (TTE) 中编码权限,而是使用 TTE 中的字段来索引寄存器中指定的权限数组。这种间接提供…

hadoop-3.1.1分布式搭建与常用命令

一、准备工作 1.首先需要三台虚拟机: master 、 node1 、 node2 2.时间同步 ntpdate ntp.aliyun.com 3.调整时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 4.jdk1.8 java -version 5.修改主机名 三台分别执行 vim /etc/hostname 并将内容指定为…

大模型时代下的“金融业生物识别安全挑战”机遇

作者:中关村科金AI安全攻防实验室 冯月 金融行业正在面临着前所未有的安全挑战,人脸安全事件频发,国家高度重视并提出警告,全行业每年黑产欺诈涉及资金额超过1100亿元。冰山上是安全事件,冰山下隐藏的是“裸奔”的技术…

主流好用的 Markdown 编辑器介绍

在当今程序员的日常工作中,Markdown 已经成为了一种常用的文本标记语言,它简洁、易读、易写,被广泛应用于写作、文档编写、博客撰写等场景。为了更高效地编辑和管理 Markdown 格式的文档,选择一款功能强大、易用的 Markdown 编辑器…

I.MX6ULL_Linux_驱动篇(55)linux 网络驱动

网络驱动是 linux 里面驱动三巨头之一, linux 下的网络功能非常强大,嵌入式 linux 中也常常用到网络功能。前面我们已经讲过了字符设备驱动和块设备驱动,本章我们就来学习一下linux 里面的网络设备驱动。 嵌入式网络简介 网络硬件接口 首先…

联想 lenovoTab 拯救者平板 Y700 二代_TB320FC原厂ZUI_15.0.677 firmware 线刷包9008固件ROM root方法

联想 lenovoTab 拯救者平板 Y700 二代_TB320FC原厂ZUI_15.0.677 firmware 线刷包9008固件ROM root方法 ro.vendor.config.lgsi.market_name拯救者平板 Y700 ro.vendor.config.lgsi.en.market_nameLegion Tab Y700 #ro.vendor.config.lgsi.short_market_name联想平板 ZUI T # B…

用Kimichat快速识别出图片中的表格保存到Excel

如果有一张图片格式的表格,想要快速复制到Excel表格中,那么一般要借助于OCR工具。之前试过不少在线OCR工具,识别效果差强人意。其实,kimichat就可以非常好的完成这个任务。 下面是一张研报中的表格,只能以图片形式保存…

Linux 系统 CentOS7 上搭建 Hadoop HDFS集群详细步骤

集群搭建 整体思路:先在一个节点上安装、配置,然后再克隆出多个节点,修改 IP ,免密,主机名等 提前规划: 需要三个节点,主机名分别命名:node1、node2、node3 在下面对 node1 配置时,先假设 node2 和 node3 是存在的 **注意:**整个搭建过程,除了1和2 步,其他操作都使…

网络基础(day1)

计算机网络 计算机网络:实现计算机数据的传输。 数据通过网络转发,由应用程序产生!!! 工作组网络电脑直接拿线连接。局域网通过集线器和交换机这样的设备串联起来的网络。城域网城市网络包括了多个小区,多个…

Tensorflow2.0笔记 - metrics做损失和准确度信息度量

本笔记主要记录metrics相关的内容,详细内容请参考代码注释,代码本身只使用了Accuracy和Mean。本节的代码基于上篇笔记FashionMnist的代码经过简单修改而来,上篇笔记链接如下: Tensorflow2.0笔记 - FashionMnist数据集训练-CSDN博…

Android笔记(三十):PorterDuffXfermode实现旋转进度View

背景 核心原理是使用PorterDuffXfermode Path来绘制进度,并实现圆角 效果图 Android笔记(三十)效果演示 进度条绘制步骤 将ImageView矩形七个点的坐标存储起来(configNodes) 他们对应着7个不同的刻度,每个刻度的值 i * &#…

Stable Diffusion WebUI 生成参数:脚本(Script)——提示词矩阵、从文本框或文件载入提示词、X/Y/Z图表

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 在本篇文章中,我们将深入探讨 Stable Diffusion WebUI 的另一个引人注目的生成参数——脚本(Script)。我们将逐一细说提示词矩阵、从文本框或文件导入提示词,…

2.4 比较检验 机器学习

目录 常见比较检验方法 总述 2.4.1 假设检验 2.4.2 交叉验证T检验 2.4.3 McNemar 检验 接我们的上一篇《性能度量》,那么我们在某种度量下取得评估结果后,是否可以直接比较以评判优劣呢?实际上是不可以的。因为我们第一,测试…

iOS UIFont-实现三方字体的下载和使用

UIFont 系列传送门 第一弹加载本地字体:iOS UIFont-新增第三方字体 第二弹加载线上字体:iOS UIFont-实现三方字体的下载和使用 前言 在上一章我们完成啦如何加载使用本地的字体。如果我们有很多的字体可供用户选择,我们当然可以全部使用本地字体加载方式,可是这样就增加了…

【Golang入门教程】Go语言变量的初始化

文章目录 强烈推荐引言举例多个变量同时赋值总结强烈推荐专栏集锦写在最后 强烈推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能 推荐一个个人工作,日常中比较常…

使用 Yoda 和 ClickHouse 进行实时欺诈检测

背景 Instacart 是北美领先的在线杂货公司,拥有数百万活跃的客户和购物者。在其平台上打击欺诈和滥用行为不仅对于维护一个值得信赖和安全的环境至关重要,也对保持Instacart的财务健康至关重要。在这篇文章中,将介绍了一个欺诈平台——Yoda,解释了为什么我们选择ClickHous…