PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)

PyTorch安装

视频教程:PyTorch安装(附yolov5环境搭建)
访问PyTorch官网获取安装命令
点击install previous versions of(安装以前的版本)
在这里插入图片描述
yoloV5的项目说明中可以看到环境要求
在这里插入图片描述
PyTorch历史版本里搜索torch==1.7的版本,使用pip安装,命令如下:

pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

使用conda创建环境

conda create -n yolo python=3.7

激活环境

conda activate yolo

安装torch

pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

本地部署yoloV5

安装环境依赖

打开代码中的requirements.txt文件,注释掉 numpy、pillow 、torch、torchvision 这几个库(在单独安装torch时已经安装好)
在这里插入图片描述
运行以下命令,安装环境依赖。

pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

速度慢的话,换下面的国内源试试看。

http://pypi.douban.com/simple/ 				#豆瓣
http://pypi.hustunique.com/simple/ 			#华中理工大学
http://pypi.sdutlinux.org/simple/ 			#山东理工大学
http://pypi.mirrors.ustc.edu.cn/simple/ 	#中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/simple/	#清华

如果在安装依赖跳出警告
WARNING: Ignore distutils configs in setup.cfg due to encoding errors.
建议:✅忽略这个警告,对环境部署没有影响,如果按照下面的方法更改编码样式后可能会出现终端样式被更改,有些中文软件显示乱码。
解决方法:🥶1.打开设置;2.点击语言;3.找到语言里的相关设置,点击管理语言设置;4.在弹出的区域里点击更改系统区域设置;5.在弹出的区域设置里勾选Beta版;6.点击确定,重启电脑后会生效。
在这里插入图片描述

调试代码

检测(python detect.py)

运行命令python detect.py,会提示
Downloading https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt to yolov5s.pt…
如果可以下载成功,会在根目录多出一个叫“yolov5s.pt”的文件;
如果下载失败会报下面的错误:
报错:FileNotFoundError: [Errno 2] No such file or directory: ‘yolov5s.pt’
说明:没有找到权重文件yolov5s.pt
解决方法:手动下载,从项目官网搜索yolov5s,点击下载yolov5s.pt。
在这里插入图片描述
在detect.py的219行,默认权重路径为根目录,所以复制一份下载的权重文件yolov5s.pt到代码根目录。如果不想放在根目录,修改默认路径为自己权重文件的路径并确保该路径中包含权重文件。
在这里插入图片描述
给个例子吧,例如,我将权重文件放在根目录下的weights文件夹里,并将219行的默认路径修改为’weights/yolov5s.pt’,如下图所示
在这里插入图片描述

再次运行python detect.py,可以返回检测结果,Results saved to runs\detect\exp2。
说明环境搭建成功。

训练(python train.py)

要训练自己的数据集的话,还需要做以下几个步骤。

添加数据集和配置文件

我在项目的根目录下新建一个my_datas文件夹,按下图所示,包含test,train,valid用的数据集和配置文件。
在这里插入图片描述

修改数据集的配置文件

打开数据集的配置文件(data.yaml),添加为自己数据集的路径(如果使用我的目录结构,和我一样就可以),根据自己的实际情况添加检测的类型数和名称(我这里只检测“korgi-dog”这种狗)

train: ../my_datas/train/images # 训练数据集的路径
val: ../my_datas/valid/images   # 验证数据集的路径
test: ../my_datas/test/images   # 测试数据集的路径

nc: 1                  # 需要检测的类别数         
names: ['korgi-dog']   # 类别的名称,用英文
修改模型的配置文件

从models文件夹中复制一份yolov5s.yaml文件到my_datas文件夹,重命名为my_yolov5s.yaml。
居中
根据自己需要检测的类别数,修改my_yolov5s.yaml里的nc的值。
在这里插入图片描述

修改train.py的参数

在train.py中找到以下参数,根据下面每行代码后面的注释,结合自己的实际需求,修改下面的参数(目录结构和我一样的话,可以直接用我设置的参数,注意根据自己的实际情况改一下batch-size)。

    parser.add_argument('--weights', type=str, default=ROOT / 'weights/yolov5s.pt', help='initial weights path')    # --weights:初始化的权重文件的路径地址
    parser.add_argument('--cfg', type=str, default='my_datas/my_yolov5s.yaml', help='model.yaml path')              # --cfg:要训练的模型的配置文件的路径地址
    parser.add_argument('--data', type=str, default=ROOT / 'my_datas/data.yaml', help='dataset.yaml path')          # --data:数据集的配置文件的路径地址
    parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')    
    parser.add_argument('--epochs', type=int, default=100, help='total training epochs')                            # --epochs:训练轮次,太小会欠拟合
    parser.add_argument('--batch-size', type=int, default=4, help='total batch size for all GPUs, -1 for autobatch')   # --batch-size: 每个批次的样本数量,应该小于等于电脑独显的专享内存
    parser.add_argument('--workers', type=int, default=8, help='max dataloader workers (per RANK in DDP mode)')     # --workers:每个进程(RANK)中数据加载器的最大工作线程数
    parser.add_argument('--project', default=ROOT / 'weights', help='save to project/name')                         # --project: 训练的结果(权重)的保存位置
可能会出现的错误

报错:ImportError: Failed to initialize: Bad git executable.
说明:git环境变量出错
解决方法:在train.pyt里加入下面这行代码

os.environ["GIT_PYTHON_REFRESH"] = "quiet"

在这里插入图片描述
报错:OSError: [WinError 1455] 页面文件太小,无法完成操作。
说明:虚拟内存不足
先解释两个名词:
DataLoader 可以自动将数据划分为批次进行加载,从而加速训练过程。您可以通过设置 batch_size 参数来指定每个批次的样本数量。
num_workers 用于指定加载数据时的子进程数量。当 num_workers 大于 0 时,DataLoader 会在主进程中生成多个子进程,每个子进程负责加载部分数据。这样可以并行加载数据,从而加速数据加载过程。如果设置为 0,则数据将在主进程中加载。
解决方法1:将utils/dataloaders.py代码中的num_workers设置为0,有两处要修改,分别在147行和1216行,使用快捷键Ctrl+F可以很快找到。

在这里插入图片描述
在这里插入图片描述
解决方法2:打开高级系统设置(最快的方法是用win10桌面的搜索图标搜索)。在高级系统设置里点击性能的设置,在弹出的性能选项中点击虚拟内存的更改,如下图所示。在这里插入图片描述在弹出的虚拟内存界面(如下图),取消勾选自动管理,选择需要更改的驱动器,选择自定义大小(不要超过可用空间的大小),点击确定,重启电脑后会生效。在这里插入图片描述

两个小疑问

这是我在搭深度学习环境踩的两个坑🙃,记录在这里。

关于CUDA

疑问1:系统需要单独安装CUDA+CuDNN吗?
先说明以下几个点
CUDA:用于在NVIDIA GPU上执行计算和并行处理。在系统安装CUDA时,会安装NVIDIA的GPU驱动和CUDA工具包,使我们在电脑上可以利用GPU资源进行计算。
CuDNN:是NVIDIA开发的针对深度神经网络的加速库
cudatoolkit:安装深度学习框架——PyTorch等时,会自带一个与特定框架版本兼容的CUDA工具包,被称为"cudatoolkit"。确保您的框架能够正确地与GPU通信和执行计算。
我的回答大多数的项目应该都不需要。比如Yolo就不需要单独在系统安装CUDA,因为在conda创建的环境中安装PyTorch时会自动安装PyTorch所需的依赖项,包括cudatoolkit,可以使用GPU跑深度学习。
但是,有些项目可能需要,我碰到过一个项目需要安装一个叫“CuPy”的库。在这里插入图片描述
CuPy 是一个用于在GPU上执行数值计算的开源库,它与NumPy非常类似,但能够在CUDA加速的GPU上运行,从而加速计算过程。CuPy 依赖于 CUDA 并利用 CUDA 的并行性进行高性能计算。“cudatoolkit” 并不是直接与 CuPy 相关的内容,而是与一些深度学习框架(如 PyTorch 和 TensorFlow)以及一些 GPU 加速库(如 Numba)相关。所以安装CuPy需要在系统安装CUDA。
我的建议当项目中没有明确说明时,先不要在系统安装CUDA,待确定需要安装后再安装,这东西第一次是最好装的,安装次数越多,就越难装(我之前因为初次接触不懂,装卸了五次,第六次安装一直报Nsight NVTX安装失败,重装了一次系统😅)

关于需要安装哪些软件

疑问2:需要在系统单独安装某个稳定版本的Python吗?
我的回答:不需要的。只要安装一个软件——Anaconda。因为在安装Anaconda时会在Anaconda安装文件夹下安装适合版本的python的依赖项。用conda创建环境时,也会安装指定版本的python和所需的依赖项到创建的环境中。
在这里插入图片描述
Anaconda是一个包管理器,包含了许多常用的Python库和工具。下了个最新的安装程序试了试,只要勾选(Register Anaconda3 as the system Python 3.11)使用Anaconda3中的解释器作为VSCode,PyCharm等IDE的Python即可。

在这里插入图片描述

colab运行yolo全系列

能看到这里,说明你对yolo很感兴趣,可以看出来本地部署yolo比较繁琐的,我零零散散写了几个小时,如果可以的话,先点个赞👍吧!
用colab运行的好处:1.无需任何配置,不会因为电脑配置不同报各种各样的bug;2.免费使用GPU(16GB)。😍

获取数据集

打开roboflow,搜索数据集,找到自己想要的数据集,点进去,在右上角会出现Download this Dataset字样,点击下载。(以YoloV8为例)
在弹出的Export窗口中,点击下拉框可以选择不同代码的数据集格式,选好后,默认使用代码下载(show download code),点击继续(Continue)。
在这里插入图片描述
在弹出的窗口中选择笔记本(Jupyter)格式,点击复制代码。
在这里插入图片描述

在Colab上训练数据集

打开roboflow/notebooks,找到YOLOv8 Object Detection所在行,点击Open in Colab
在这里插入图片描述
当鼠标移到代码段时,在左边会出现一个运行标识(红圈圈里的那个),从上往下依次运行各段代码,运行成功后左侧会出现一个勾(如红框中所示)。如果是第一次使用需要登陆Google账号。
在这里插入图片描述
在第五步导出数据集(Exporting dataset),下图红框中的代码需要改成自己的数据集代码。
在这里插入图片描述
在训练习惯(Custom Training)代码段,可以根据自己的需要调整训练参数,例如轮次(epoch)的大小。
在这里插入图片描述

保存训练结果(权重)

训练结束后,提示结果保存到runs/detect/train文件夹,点击左边的文件图标,找到train文件夹下的weights文件夹,下载best.pt(最好的权重)。
在这里插入图片描述
好了,你学废了吗?😂
欢迎大家在评论区交流讨论😊。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: YOLOv5 是一种目标检测算法,它是基于PyTorch深度学习框架构建的。YOLOv5 是YOLO(You Only Look Once)系列算法的最新版本,相比于之前的版本,它在精度和速度上都有很大的提升。 PyTorch Hub 是一个用于简化模型共享和使用的工具,它可以方便地加载已经发布的预训练模型,包括YOLOv5等。YOLOv5s 是YOLOv5系列中的一个小型模型,它在计算资源有限的情况下仍能提供不错的检测性能。 在使用 PyTorch Hub 加载 YOLOv5s 进行人头检测时,我们可以通过一些简单的步骤来实现。首先,我们需要安装 PyTorch 和 torch hub 库。然后,通过以下代码加载模型并进行人头检测: ```python import torch model = torch.hub.load('ultralytics/yolov5', 'yolov5s') results = model('path/to/image.jpg') ``` 在上述代码中,'path/to/image.jpg' 是待检测的图像路径,可以根据实际情况进行修改。结果将返回检测到的人头及其相关信息,包括坐标和置信度等。我们可以根据这些结果来进一步处理或展示目标检测的结果。 YOLOv5s 相对于其他版本的 YOLOv5 来说是一个较小的模型,因此在资源有限的情况下更加适用。它可以在保持较高检测精度的同时,实现更快的推理速度。因此,当我们需要进行人头检测时,YOLOv5s PyTorch Hub 可以是一个很好的选择。 ### 回答2: YOLOv5s是一种基于PyTorch的目标检测模型,可以用于人头检测任务。它是YOLO(You Only Look Once)系列中的一种,采用轻量化结构,适用于在计算资源有限的设备上进行实时检测。 YOLOv5s是通过PyTorch Hub提供的一种预训练模型。PyTorch Hub是一个预训练模型的集合,提供了各种模型的预训练权重,可以方便地在Python代码中加载和使用。 通过PyTorch Hub,我们可以使用以下代码加载和使用YOLOv5s进行人头检测: ```python import torch model = torch.hub.load('ultralytics/yolov5', 'yolov5s') ``` 加载完成后,我们可以使用模型对图像或视频进行人头检测。例如,对于一张图像,我们可以使用以下代码进行检测: ```python results = model('path/to/image.jpg') ``` 此时,`results`将包含检测到的人头的位置、置信度等信息。我们可以根据需要进一步处理这些结果,如绘制边界框或计算检测到的人头数量。 总之,YOLOv5s是一种通过PyTorch Hub提供的预训练模型,可以用于人头检测任务。通过加载模型并使用相应的函数,我们可以方便地进行人头检测并获取检测结果。 ### 回答3: YOLOv5s是一种基于PyTorch Hub的人头检测模型。YOLOv5s是YOLO(You Only Look Once)系列的最新版本,它采用了轻量级的结构,同时保持了较高的检测精度。PyTorch Hub是一个开源的模型库,可以方便地从中心存储库中找到和使用各种深度学习模型。 使用YOLOv5s进行人头检测非常简单。首先,您需要安装PyTorch和Torch Hub库。然后,在您的代码中引入YOLOv5s模型,并从PyTorch Hub中加载预训练的权重。 一旦模型被加载,您可以通过将图像传递给模型来进行人头检测。YOLOv5s模型将返回一个包含检测结果的列表,其中每个检测结果都包括一个边界框和对应的置信度得分。 您可以根据置信度得分对检测结果进行筛选,并根据需要进行后续处理,如绘制边界框或计算头部数量。此外,您还可以在YOLOv5s的基础上进行进一步的自定义,以满足特定的需求。 总之,使用YOLOv5s模型进行人头检测是非常简单和高效的。借助PyTorch Hub的便利,您可以快速加载预训练的权重并进行检测。YOLOv5s的轻量级结构使其适用于各种场景,并且具有较高的检测精度。因此,YOLOv5s在人头检测任务中是一个非常实用的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值