遇到的问题
1、yolov8n.pt, yolov8n.yaml 区别
yolov8n.pt 配置好的二进制模型文件
yolov8n.yaml 可修改配置好的模型文件
2、CUDA与pytorch版本不兼容
查看是否安装NVIDIA驱动命令: nvidia-smi(这里面也会显示CUDA版本不用管)
查看nvcc版本命令: nvcc --version(目前只需看着这里的CUDA版本),如果没有安装,按提示安装
利用python3输入以下命令,结果为TURE为兼容
import torch
print(torch.cuda.is_available())
访问Previous PyTorch Versions | PyTorch,找到与CUDA版本相符的Pytorch版本 ,(我的CUDA是10.1)
【一文解决】已安装CUDA与Pytorch但torch.cuda.is_available()为False_torch.cuda.is available返回false-优快云博客
3、
【CUDA】nvcc和nvidia-smi显示的版本不一致
通常,driver api的版本能向下兼容runtime api的版本,即 nvidia-smi 显示的版本大于nvcc --version 的版本通常不会出现大问题。
【CUDA】nvcc和nvidia-smi显示的版本不一致?_nvcc --version-优快云博客
1、安装流程
1.1 安装anaconda()
Anaconda集成了常用的科学计算库,如NumPy、SciPy、Pandas和Matplotlib等,并且包含了一个强大的包管理系统,可以方便地安装和管理Python包。Anaconda还附带了一个集成开发环境(IDE)——Anaconda Navigator,它可以帮助用户更方便地开发和调试Python代码。
安装比较简单,参考Ubuntu20.04安装Anaconda过程记录_ubuntu20.4 anaconda-优快云博客
1.2 利用anaconda 创建虚拟环境
不同的虚拟环境可以配置不同版本的包,比如一个环境里配python2,另外的环境配python3
1.2.1 conda 常见命令
- 查看conda版本:通过输入
conda --version
- 创建虚拟环境:使用
conda create -n env_name python=3.8
命令可以创建一个名为env_name的新虚拟环境,并指定Python版本为3.8。若不指定Python版本,将自动创建基于最新版本的环境。 - 激活虚拟环境:conda
activate env_name
进行激活。如果忘记env_name,使用conda env list查看
- 退出虚拟环境:使用命令
conda deactivate
可以退出当前激活的虚拟环境,返回到基础环境。 - 删除虚拟环境:使用
conda remove -n env_name --all
命令可以删除指定的虚拟环境及其所有内容。 - 查询包的安装情况:使用
conda list
命令可以列出当前环境中已安装的所有软件包及其版本信息。 - 安装软件包:使用
conda install package_name
命令可以安装指定的软件包。如果需要指定版本,可以使用conda install package_name=version
。 - 卸载软件包:使用
conda remove package_name
命令可以从当前环境中卸载指定的软件包。
1.2.2 创建虚拟环境
1、创建虚拟·
conda create -n yolov8_2cp38 python=3.8
2、激活虚拟环境
conda activate yolov8_2cp38
首次激活环境后,为了conda \pip下载更加顺畅,添加conda \pip源
#添加Anaconda的清华镜像
#anaconda默认的各种包的下载源,全部在国外,下载速度慢
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
设置搜索时显示通道地址
conda config --set show_channel_urls yes
#更新pip的源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#如果想换回Anaconda的默认下载源时,把之前设置的移除
conda config --remove-key channels
3、安装依赖库
conda install numpy mkl cffi
4、安装pytorch
这里需要注意CUDA与pytorch版本的兼容性(查看最上方,遇到的问题2)
# CUDA 10.1
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch
如果没有GPU,应该是选择cpu only
# CPU Only
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cpuonly -c pytorch
5、安装YOLO的代码ultralytics
pip install ultralytics
6、检验 ultralytics是否安装成功
import ultralytics
ultralytics.checks()
2、测试yolo
2.1 常见yolo 命令
YOLO(You Only Look Once)是一种流行的实时目标检测系统,广泛应用于计算机视觉领域。YOLO的常见指令主要包括训练、预测和模型导出等。
-
训练
- 命令格式:
yolo train data=data/data.yaml model=yolov8s.pt epochs=300 imgsz=640 batch=8 workers=0 device=0
- 主要参数
- data:训练的参数文件,包含训练集和验证集的图片路径、标签名称数量等信息。
- model:预训练模型,可以是YOLOv8官方的模型,也可以是自己训练的模型。
- epochs:训练轮数,轮数越多,精准度通常会提高,但会有一个临界值。
- imgsz:训练时图片大小,根据自己训练的图片尺寸和要识别的物体大小进行判断。
- batch:每次传入GPU的图片数量,对显卡的显存要求高。
- workers:数据装载时CPU所使用的线程数,可以查看自己的CPU的线程数量进行设置。
- device:训练所使用的设备,默认为CPU,0为显卡。
- 命令格式:
-
预测
- 命令格式:
yolo predict model=yolov8n.pt source='ultralytics/assets/' device=0
- 主要参数
- model:要测试的模型,可以是YOLOv8官方的模型,也可以是自己训练的模型。
- source:要测试的图片或视频的地址,使用绝对路径和相对路径都可以。
- device:测试图片或视频使用的设备。
- 命令格式:
-
模型导出
- 命令格式:
yolo export model=yolov8n.pt format=onnx
- 主要参数
- model:要转化的模型。
- format:要转化成的模型类型。
- 命令格式:
格式 | 描述 | 用途 |
---|---|---|
ONNX | 开放的神经网络交换格式 | 跨平台部署(如Caffe2、MXNet) |
TensorRT | NVIDIA的高性能推理库 | GPU加速推理 |
CoreML | Apple的机器学习框架 | iOS应用集成 |
TF SavedModel | TensorFlow的保存和加载机制 | TensorFlow环境使用 |
TorchScript | PyTorch的优化模式 | 提高推理性能 |
PaddlePaddle | 百度的深度学习平台 | PaddlePaddle环境使用 |
NCNN | 移动端优化的推理框架 | 移动设备目标检测 |
2.2 测试YOLOv8 是否安装成功
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'