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

PyTorch安装

视频教程:PyTorch安装(附yolov5环境搭建)
访问PyTorch官网获取安装命令
点击install previous versions of(安装以前的版本)
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第1张图片
在yoloV5的项目说明中可以看到环境要求
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第2张图片
在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时已经安装好)
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第3张图片
运行以下命令,安装环境依赖。

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.点击确定,重启电脑后会生效。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第4张图片

调试代码

检测(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。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第5张图片
在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用的数据集和配置文件。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第6张图片

修改数据集的配置文件

打开数据集的配置文件(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。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第7张图片
根据自己需要检测的类别数,修改my_yolov5s.yaml里的nc的值。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第8张图片

修改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"

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

PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第10张图片
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第11张图片
解决方法2:打开高级系统设置(最快的方法是用win10桌面的搜索图标搜索)。在高级系统设置里点击性能的设置,在弹出的性能选项中点击虚拟内存的更改,如下图所示。PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第12张图片在弹出的虚拟内存界面(如下图),取消勾选自动管理,选择需要更改的驱动器,选择自定义大小(不要超过可用空间的大小),点击确定,重启电脑后会生效。PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第13张图片

两个小疑问

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

关于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”的库。PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第14张图片
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和所需的依赖项到创建的环境中。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第15张图片
Anaconda是一个包管理器,包含了许多常用的Python库和工具。下了个最新的安装程序试了试,只要勾选(Register Anaconda3 as the system Python 3.11)使用Anaconda3中的解释器作为VSCode,PyCharm等IDE的Python即可。

PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第16张图片

colab运行yolo全系列

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

获取数据集

打开roboflow,搜索数据集,找到自己想要的数据集,点进去,在右上角会出现Download this Dataset字样,点击下载。(以YoloV8为例)
在弹出的Export窗口中,点击下拉框可以选择不同代码的数据集格式,选好后,默认使用代码下载(show download code),点击继续(Continue)。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第17张图片
在弹出的窗口中选择笔记本(Jupyter)格式,点击复制代码。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第18张图片

在Colab上训练数据集

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

保存训练结果(权重)

训练结束后,提示结果保存到runs/detect/train文件夹,点击左边的文件图标,找到train文件夹下的weights文件夹,下载best.pt(最好的权重)。
PyTorch安装教程(本地部署yolovV5,colab运行yolo全系列代码)_第22张图片
好了,你学废了吗?
欢迎大家在评论区交流讨论。

你可能感兴趣的:(pytorch,YOLO,人工智能,深度学习,python,windows)