【深度学习之YOLO8】环境部署

目录

  • 一、确定版本
    • CUDA toolkit、cuDNN版本
    • Python、PyTorch版本
  • 二、安装Python
    • 下载
    • 环境变量
    • 验证安装
  • 三、安装Anaconda
    • 安装
    • 环境变量
    • 验证安装
    • 创建conda虚拟环境
    • 常用命令
  • 四、安装CUDA toolkit
    • 下载
    • 环境变量
    • 验证安装
  • 五、配置cuDNN
    • 下载
  • 六、安装PyTorch(torch+torchversion+torchaudio)
    • 下载
    • 验证torch安装
  • 七、环境测试
    • 验证cuDNN
    • 验证YOLOv8
      • CLI
      • Python Code
  • 八、可能出现的问题
  • 九、附yolo命令参数解释

Ultralytics YOLOv8 是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。

  • Python SDK Download
  • Ultralytics YOLOv8 GitHub
  • PyTorch GitHub
  • NVIDIA CUDA toolkit Download
  • NVIDIA cuDNN Download
  • Anaconda Download
配置Python环境变量
创建conda环境
配置CUDA环境变量
配置cuDNN文件
下载安装PythonSDK
拉取yolo8 GitHub项目到本地
Anaconda安装
下载安装CUDA toolkit
下载PyTorch
下载cuDNN
环境测试

除了拉取代码不需要验证,其他都需要自己check下到底是不是真安装成功了

一、确定版本

CUDA toolkit、cuDNN版本

  1. 查看显卡的CUDA支持的最高版本,我的是12.2.79,后面安装的CUDA toolkit和cuDNN大版本不能超过它
    [外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnim-n/7h1UWj1209abda6844c1803cc47a4fc2.png =360x3505100)( =300x300)]
  2. 进PyTorch官网,查看支持的CUDA最高版本,我的torch是最高支持11.8
    在这里插入图片描述

由以上两点,得出安装的CUDA、cuDNN不能超11.8,那我后面这俩安装<=11.8

Python、PyTorch版本

torch、python各版本兼容情况表

torchtorchvisionPython
main / nightlymain / nightly>=3.8, <=3.11
2.00.15>=3.8, <=3.11
1.130.14>=3.7.2, <=3.10
1.120.13>=3.7, <=3.10
1.110.12>=3.7, <=3.10
1.100.11>=3.6, <=3.9
1.90.10>=3.6, <=3.9
1.80.9>=3.6, <=3.9
1.70.8>=3.6, <=3.9
1.60.7>=3.6, <=3.8
1.50.6>=3.5, <=3.8
1.40.5==2.7, >=3.5, <=3.8
1.30.4.2 / 0.4.3==2.7, >=3.5, <=3.7
1.20.4.1==2.7, >=3.5, <=3.7
1.10.3==2.7, >=3.5, <=3.7
<=1.00.2==2.7, >=3.5, <=3.7

上面有CUDA、cuDNN版本<=11.8

再在进PyTorch官网,预览一下DUDA<=11.8的有哪些

如果我用11.8的,看到PyTorch只有v2.0.0的,那么在上面 torch、python各版本兼容情况表 里可以得出:我的电脑CUDA、duDNN、PyTorch和Python互相兼容的py版本范围是3.8~3.11
所以,py版本不宜过高,每一个组件都有自己对其他组件的兼容范围,YOLO5的默认SDK版本是3.7,YOLO8的默认SDK版本是3.8

最终版本选择
版本号
Python3.8.0
CUDA toolkit11.8.0
cuDNN11.x
PyTorch2.0.0
TorchAudio2.0.0
TorchVision0.15.0

二、安装Python

下载

已经有Python的需要卸载干净,去官网找自己对应版本的安装包(要卸载哪个就找哪个版本的exe安装包),比如找3.8.0的,下载运行点击Uninstall进行卸载

电脑无Python残留,或没有安装过Python,进官网版本列表下载自己要的版本,一路确认即可,尽量是不要安在有中文的路径下,后面的安装也是

环境变量

将Python安装目录和里面的Scripts文件夹路径放在Path里

C:\Users\Administrator\AppData\Local\Programs\Python\Python38
C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Scripts

验证安装

win+r后键入cmd确认,出现版本号

python -V
或者
python --version

在这里插入图片描述

三、安装Anaconda

一个易于安装的包管理器、环境管理器和 Python 发行版,包含 1,500 多个开源包,并提供 免费社区支持。Anaconda与平台无关,因此无论在Windows、macOS还是Linux上都可以使用它,与它类似的有pip。

安装

进Anaconda官网,点下载,无脑下一步即可

环境变量

将以下四个路径添加进Path
在这里插入图片描述

验证安装

conda -V

创建conda虚拟环境

后面的操作都是基于这个虚拟环境,最好是用管理员打开终端

CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate
第一次激活环境,可能有这个错误,根据提示使用conda init,重启cmd。或者使用source activate env_name使环境可用。

# 创建虚拟环境
conda create -n yolov8 python=3.8.0
# 激活虚拟环境(切换至这个环境)
conda activate yolov8
# 查看已创建的虚拟环境
conda info -e

常用命令

# 查看版本
conda --version # 或者 conda -V
# 更新conda
conda update conda
# 更新Anaconda
conda update Anaconda
# 查看环境配置
conda config --show
# 查看安装了哪些包
conda list
# 查看Anaconda仓库有没有这个想要的包
conda search package_name
# 新增镜像channel
conda config --add channels mirrors_url
# 移除镜像channel
conda config --add channels mirrors_url
# 查看配了哪些镜像channel
conda config --show channels
# 设置清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
# 设置bioconda
conda config --add channels bioconda
conda config --add channels conda-forge
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
# 创建虚拟环境
conda create -n env_name python=3.8
# 查看虚拟环境
conda env list #或conda info -e 或conda info --envs
# 激活虚拟环境
conda activate env_name
# 退出当前虚拟环境
conda deactivate
# 删除虚拟环境
conda remove -n env_name --all
# 安装包(在当前虚拟环境)
conda install package_name=package_version
# 更新包(在当前虚拟环境)
conda update package_name
# 删除包(在当前虚拟环境)
conda remove --name env_name  package_name
# 卸载包
conda uninstall package_name
# 增量卸载包(如果有虚拟环境在用,会跳过这个小包,就是不全卸载)
conda uninstall package_name --force
# 删除没有在用的包
conda clean -p
# 清理缓存
conda clean -y -all
# 变更Python版本
conda install python=3.5 #升级到最新版conda update python
# 查看配置文件地址 (默认`C:\Users\用户名\.condarc`)
conda info #user config file那行
# conda初始化
conda init

四、安装CUDA toolkit

下载

官网下载,跳转翻阅之前版本,找到CUDA-11.8.0下载

安装,注意下面两步,其他默认

环境变量

默认安装在:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
Path加入:lib\x64文件夹、include文件夹(安装默认配了bin和libnvvp)。
在这里插入图片描述

验证安装

cmd窗口输入:nvcc -V
在这里插入图片描述
或者
cmd切换CUDA安装目录,进extras/demo_suite目录,执行里面的bandwidthTest.exe,再执行deviceQuery.exe,结果显示PASS即是成功
在这里插入图片描述

五、配置cuDNN

通俗点讲,cuDNN就是CUDA toolkit的一个补丁,深度学习需要这个补丁才能使用API驱动GPU的CUDA

下载

进官网,需要登陆NVIDIA账号,并且注册成开发者,完成后进入下载界面

解压,全选复制,黏贴到CUDA安装目录,全部"是"即可

## 验证配置 cuDNN的验证放在后面

六、安装PyTorch(torch+torchversion+torchaudio)

一种开源深度学习框架,以出色的灵活性和易用性著称。

下载

打开cmd,进入之前创建的虚拟环境yolov8,复制torch官网conda语句,安装PyTorch

在这里插入图片描述官网安装PyTorch语句在这,一定要看好自己需要哪个torch版本、cuda版本

conda activate yolov8
# -c pytorch可以去掉,即不指定pytorch官方channel下载,国内快一点
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c nvidia

如果有CondaHTTPError: HTTP 000 CONNECTION FAILED for url ...的错误, 修改conda配置文件,把下面内容全部替换掉原来的,重启命令行,进环境再install一下
配置文件默认地址C:\Users\{用户名}\.condarc

show_channel_urls: true
channels:- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
ssl_verify: false

channels:镜像源
ssl_verify:关闭SSL安全认证
show_channel_urls:从channel安装某个包时,显示channel的url

验证torch安装

官方验证,进cmd,进python环境,输入下面三行,看打印结果

import torch
x = torch.rand(5, 3)
print(x)# 样例输出
tensor([[0.3380, 0.3845, 0.3217],[0.8337, 0.9050, 0.2650],[0.2979, 0.7141, 0.9069],[0.1449, 0.1132, 0.1375],[0.4675, 0.3947, 0.1426]])

在这里插入图片描述

七、环境测试

我使用的是IDEA,也可以用PyCharm

验证cuDNN

先不新建项目,打开之前拉取下拉的yolo8 GitHub项目,配下上面新建的conda环境yolov8,查看虚拟环境放哪了可以用conda info -e

配好后,索引可能需要更新一会,等待

打开后新建一个自定义文件夹,new一个py文件,贴上以下代码,运行查看结果

import torch
# 查看pytorch版本
print(f'pytorch版本: {torch.version.__version__}')
# 查看显卡GPU是否可用
print(f'GPU是否可用: {torch.cuda.is_available()}')
# 查看GPU可用数
print(f'GPU可用数: {torch.cuda.device_count()}')
# 查看CUDA版本
print(f'CUDA版本: {torch.version.cuda}')
# 查看CUDA-cuDNN版本
print(f'cuDNN版本: {torch.backends.cudnn.version()}')
quit()

如果你看到GPU可用为True,那cuDNN就是安装成功了,此时环境就是GPU版本的了

在这里插入图片描述

验证YOLOv8

打开yolo8项目找到requirements.txt安装插件,或者使用终端在项目内pip安装pip install -r requirements.txt
在这里插入图片描述
这时就可能用到这个官网中文README。使用方式有两种,命令行(CLI) 和 Python代码

CLI

在项目里有个图片ultralytics/assets/bus.jpg,可以使用yolov8n.pt模型对这个图片做一个简单的推理

yolo predict model=yolov8n.pt source='可以填你图片在你电脑的绝对路径'

在这里插入图片描述
推理结果保存在了runs\detect\predict,我在C:\Users\zhangjinke>执行的这个命令,所以文件在C:\Users\zhangjinke\runs\detect\predict
在这里插入图片描述

Python Code

from ultralytics import YOLO# 加载模型
# model = YOLO("yolov8n.yaml")  # 从头开始构建新模型
model = YOLO("yolov8n.pt")  # 加载预训练模型(建议用于训练)# 使用模型
# model.train(data="coco128.yaml", epochs=3)  # 训练模型
metrics = model.val()  # 在验证集上评估模型性能
results = model(source='ultralytics/assets/bus.jpg')  # 对图像进行预测
results.print()  # 打印结果
# success = model.export(format="onnx")  # 将模型导出为 ONNX 格式

第一次运行此代码需要下载coco的标签包,等待,结果例子如下,没有报错环境就部署成功了

Speed: 0.2ms preprocess, 3.1ms inference, 0.0ms loss, 0.7ms postprocess per image
Results saved to runs\detect\val7image 1/1 D:\GitProjects\ultralytics\ultralytics\assets\bus.jpg: 640x480 4 persons, 1 bus, 23.9ms
Speed: 2.0ms preprocess, 23.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 480)
Ultralytics YOLOv8.0.138  Python-3.9.13 torch-1.13.0+cu116 CPU (Intel Core(TM) i9-9900K 3.60GHz)PyTorch: starting from runs\detect\train11\weights\best.pt with input shape (1, 3, 640, 640) BCHW and output shape(s) (1, 84, 8400) (6.2 MB)ONNX: starting export with onnx 1.14.0 opset 16...
ONNX: export success  0.7s, saved as runs\detect\train11\weights\best.onnx (12.2 MB)Export complete (2.2s)
Results saved to D:\GitProjects\ultralytics\runs\runs\detect\train11\weights
Predict:         yolo predict task=detect model=runs\detect\train11\weights\best.onnx imgsz=640 
Validate:        yolo val task=detect model=runs\detect\train11\weights\best.onnx imgsz=640 data=D:\GitProjects\ultralytics\ultralytics\cfg\datasets\coco128.yaml 
Visualize:       https://netron.app进程已结束,退出代码0

八、可能出现的问题

  • 乱码提示需要运行pip install --no-cache "py-cpuinfo",在这可能需要先更新pip,按照提示即可
    在这里插入图片描述
  • xxx

九、附yolo命令参数解释

GitHub官方对所有参数的解释

task

  • detect:指定任务为目标检测,即通过模型识别图像或视频中的物体,然后在图像上标注出它们的位置。
  • classify:指定任务为图像分类,即通过模型将图像分为不同的类别。
  • segment:指定任务为图像分割,即将图像分割为不同的区域,并为每个区域分配一个标签。

mode

  • train:指定模式为训练模式,用于训练模型。
  • predict:指定任务为预测,即使用训练好的模型对新的图像进行预测。
  • val:指定验证模式,用于评估模型在验证集上的性能。
  • export:指定任务为导出模型,即将训练好的模型导出到其他格式,如ONNX。

model

  • yolov8n.pt:指定模型的文件名或路径,其中yolov8n.pt表示模型的文件名。
  • yolov8n-cls.yaml:指定用于图像分类的模型配置文件的文件名或路径。
  • yolov8n-seg.yaml:指定用于图像分割的模型配置文件的文件名或路径。
KeyValueDescription
dataNone数据文件路径,例如 coco128.yaml
imgsz640图像尺寸,可以是一个标量或 (h, w) 的列表,例如 (640, 480)
batch16每个批次的图像数(-1 表示自动批处理)
save_jsonFALSE是否将结果保存为 JSON 文件
save_hybridFALSE是否保存标签的混合版本(标签 + 额外的预测结果)
conf0.001目标置信度阈值,用于检测
iou0.6NMS(非最大抑制)的交并比阈值
max_det300每张图像的最大检测数
halfTRUE是否使用半精度(FP16)
deviceNone运行模型的设备,例如 cuda device=0/1/2/3 或 device=cpu
dnnFALSE是否使用 OpenCV DNN 进行 ONNX 推断
plotsFALSE训练过程中是否显示图表
rectFALSE针对最小填充的每个批次进行矩形验证
splitval用于验证的数据集拆分,例如 ‘val’、‘test’ 或 ‘train’

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

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

相关文章

华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(五)

系列文章目录 个人简介&#xff1a;机电专业在读研究生&#xff0c;CSDN内容合伙人&#xff0c;博主个人首页 Python面试专栏&#xff1a;《Python面试》此专栏面向准备面试的2024届毕业生。欢迎阅读&#xff0c;一起进步&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; …

RUST腐蚀基因种植

RUST腐蚀基因种植 试验地址:www.xiaocao.cloud RUST基因: RUST基因计算器&#xff0c;腐蚀基因计算器&#xff0c;前后端分离架构&#xff0c;前端目录/resouce/ui/rust&#xff0c;欢迎大佬评价&#xff0c;

算法笔记(java)——回溯篇

回溯算法解决问题最有规律性&#xff0c;借用一下卡哥的图&#xff1a; 只要遇到上述问题就可以考虑使用回溯&#xff0c;回溯法的效率并不高&#xff0c;是一种暴力解法&#xff0c;其代码是嵌套在for循环中的递归&#xff0c;用来解决暴力算法解决不了的问题&#xff0c;即…

Tensorflow无人车使用移动端的SSD(单发多框检测)来识别物体及Graph的认识

环境是树莓派3B&#xff0c;当然这里安装tensorflow并不是一定要在树莓派环境&#xff0c;只需要是ARM架构就行&#xff0c;也就是目前市场上绝大部分的嵌入式系统都是用这套精简指令集。 在电脑端的检测&#xff0c;有兴趣的可以查阅SSD(Single Shot MultiBox Detector)系列&a…

19 QListWidget控件

Tips: 对于列表式数据可以使用QStringList进行左移一块输入。 代码&#xff1a; //listWidget使用 // QListWidgetItem * item new QListWidgetItem("锄禾日当午"); // QListWidgetItem * item2 new QListWidgetItem("汗滴禾下土"); // ui->…

十、正则表达式详解:掌握强大的文本处理工具(二)

文章目录 &#x1f340;多字符匹配&#x1f340;匹配规则的代替&#x1f340;特殊的匹配&#x1f340;特殊的匹配plus&#x1f340;总结 &#x1f340;多字符匹配 星号&#xff08;*&#xff09;&#xff1a;匹配0个或者多个字符 import retext 111-222-333 result re.matc…

苹果的Apple GPT要来了?

据外媒消息&#xff0c;苹果正在内部开发类 ChatGPT 的产品&#xff0c;与微软、OpenAI、谷歌、Meta 等科技巨头在生成式 AI 赛道展开竞争。该消息使得苹果股价上涨了 2%。据苹果工程师透露&#xff0c;苹果在内部构建了代号为“Ajax”的大语言模型开发框架&#xff0c;并构建了…

Unity自定义后处理——Bloom效果

大家好&#xff0c;我是阿赵。   继续介绍屏幕后处理效果&#xff0c;这一期讲一下Bloom效果。 一、Bloom效果介绍 还是拿这个模型作为背景。 Bloom效果&#xff0c;就是一种全屏泛光的效果&#xff0c;让模型和特效有一种真的在发光的感觉。 根据参数不一样&#xff0c;可…

Packet Tracer – 实施静态 NAT 和动态 NAT

Packet Tracer – 实施静态 NAT 和动态 NAT 拓扑图 目标 第 1 部分&#xff1a;利用 PAT 配置动态 NAT 第 2 部分&#xff1a;配置静态 NAT 第 3 部分&#xff1a;验证 NAT 实施 第 1 部分&#xff1a; 利用 PAT 配置动态 NAT 步骤 1&#xff1a; 配置允许用于 NAT …

【基于CentOS 7 的iscsi服务】

目录 一、概述 1.简述 2.作用 3. iscsi 4.相关名称 二、使用步骤 - 构建iscsi服务 1.使用targetcli工具进入到iscsi服务器端管理界面 2.实现步骤 2.1 服务器端 2.2 客户端 2.2.1 安装软件 2.2.2 在认证文件中生成iqn编号 2.2.3 开启客户端服务 2.2.4 查找可用的i…

AJAX-day03-AJAX进阶

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 同步代码和异步代码 回调函数地狱 Promise - 链式调用 Promise 链式应用 async函数和await async函…

Stable Diffusion入门笔记(自用)

学习视频&#xff1a;20分钟搞懂Prompt与参数设置&#xff0c;你的AI绘画“咒语”学明白了吗&#xff1f; | 零基础入门Stable Diffusion保姆级新手教程 | Prompt关键词教学_哔哩哔哩_bilibili 1.图片提示词模板 2.权重&#xff08;提示词&#xff09; 无数字 (flower)//花的…

MQTT网关 5G物联网网关 PLC控制工业网关

MQTT网关&#xff0c;两个以上的节点之间通信的新型网关&#xff0c;网络节点之间通过互连来实现双向通信。支持PLC协议转MQTT&#xff0c;实现plc数据采集上云&#xff0c;物联网云平台对接&#xff0c;广泛应用于工业自动化plc远程监测控制。 计讯物联5G MQTT物联网网关TG463…

如何解决 Git 合并冲突

在遇到合并冲突时&#xff0c;请不要惊慌。通过一些娴熟的技巧协商&#xff0c;你可以解决任何冲突。 假设你和我正在共同编辑同一个名称为 index.html 的文件。我对文件进行了修改&#xff0c;进行了提交&#xff0c;并将更改推送到 Git 远程仓库。你也对同一个文件进行了修改…

酷雷曼无人机技能培训考试圆满举办

2023年7月18日、19日&#xff0c;以“向云端起航&#xff0c;让技术落地”为主题的酷雷曼无人机技能提升培训会在酷雷曼北京运营中心隆重举行&#xff0c;来自全国各地的众多合作商参加了本次培训&#xff0c;通过系统、全面的学习成功取得了专业无人机飞行员执照&#xff0c;为…

BEVDet 论文解读

BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View 作者单位 PhiGent Robotics 目的 2D 的视觉感知在过去的几年里有了急速的发展&#xff0c;涌现出一些优秀的范式工作&#xff0c;这些工作有较高的性能&#xff0c;可扩展性&#xff0c;以及多…

【数学建模】--典型相关分析

典型相关分析&#xff08;Canonical Correlation analysis&#xff09;研究两组变量&#xff08;每组变量中都可能有多个指标&#xff09;之间相关关系的一种多元统计方法。它能够揭示出两组变量之间的内在联系。 例子&#xff1a; 典型相关分析定义&#xff1a; 列题分析&…

OpenCV自带的HAAR级联分类器对脸部(人脸、猫脸等)的检测识别

在计算机视觉领域&#xff0c;检测人脸等是一种很常见且非常重要的应用&#xff0c;我们可以先通过开放计算机视觉库OpenCV来熟悉这个人脸识别领域。另外OpenCV关于颜色的识别&#xff0c;可以查阅&#xff1a;OpenCV的HSV颜色空间在无人车中颜色识别的应用HSV颜色识别的跟踪实…

苹果账号被禁用怎么办

转载&#xff1a;苹果账号被禁用怎么办 目录 禁用的原因 解除Apple ID禁用 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UKQ1ILhC-1689932607373)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw)]​编辑 …

fiddler抓取,Android真机测试

1.配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的&#xff0c;需要进行相应的配置。 打开Fiddler&#xff0c;选择“Tools->Fiddler Options...” 2.在弹出的对话框中选择“HTTPS”选项卡&#xff1a; 3.勾选“Capture HTTPS CONNECTs”&#xff0c;接着勾选…