目录
- python sdk download
- ultralytics yolov8 github
- pytorch github
- nvidia cuda toolkit download
- nvidia cudnn download
- anaconda download
除了拉取代码不需要验证,其他都需要自己check下到底是不是真安装成功了
一、确定版本
cuda toolkit、cudnn版本
- 查看显卡的cuda支持的最高版本,我的是
12.2.79
,后面安装的cuda toolkit和cudnn大版本不能超过它
- 进pytorch官网,查看支持的cuda最高版本,即:我的电脑torch是最高支持
11.8
的cuda
由以上两点,得出安装的cuda、cudnn不能超11.8,那我后面这俩安装<=11.8
python、pytorch版本
torch | torchvision | python |
---|---|---|
main / nightly | main / nightly | >=3.8 , <=3.11 |
2.0 | 0.15 | >=3.8 , <=3.11 |
1.13 | 0.14 | >=3.7.2 , <=3.10 |
1.12 | 0.13 | >=3.7 , <=3.10 |
1.11 | 0.12 | >=3.7 , <=3.10 |
1.10 | 0.11 | >=3.6 , <=3.9 |
1.9 | 0.10 | >=3.6 , <=3.9 |
1.8 | 0.9 | >=3.6 , <=3.9 |
1.7 | 0.8 | >=3.6 , <=3.9 |
1.6 | 0.7 | >=3.6 , <=3.8 |
1.5 | 0.6 | >=3.5 , <=3.8 |
1.4 | 0.5 | ==2.7 , >=3.5 , <=3.8 |
1.3 | 0.4.2 / 0.4.3 | ==2.7 , >=3.5 , <=3.7 |
1.2 | 0.4.1 | ==2.7 , >=3.5 , <=3.7 |
1.1 | 0.3 | ==2.7 , >=3.5 , <=3.7 |
<=1.0 | 0.2 | ==2.7 , >=3.5 , <=3.7 |
上面有cuda、cudnn版本<=11.8
再在进pytorch官网,预览一下duda<=11.8的有哪些


考虑到后面可能会用到其他组件,相互兼容的不是特别及时,所以我选了11.6
的cuda,看到pytorch有1.13.0
支持cuda11.6
的,那么在上面 torch、python各版本兼容情况表 里可以得出:我的电脑cuda、dudnn、pytorch它们三个,和python互相兼容的py版本范围是3.7.2 ~ 3.10
所以,py版本不宜过高,基本都是向下兼容,yolo5的默认sdk版本是3.7,yolo8的默认sdk版本是3.8
名 | 版本号 |
---|---|
python | 3.8.0 |
cuda toolkit | 11.6.0 |
cudnn | 11.x |
pytorch | 1.13.0 |
torchaudio | 0.13.0 |
torchvision | 0.14.0 |
二、安装python
下载



电脑无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
安装
进anaconda官网,点下载,无脑下一步即可
环境变量
将以下四个路径添加进path
验证安装
conda -v
创建conda虚拟环境
后面的操作都是基于这个虚拟环境,最好是用管理员打开终端
# 创建虚拟环境
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.6.0
下载





默认安装在:c:\program files\nvidia gpu computing toolkit\cuda\v11.6
path加入下面这5个路径(安装默认配了bin和libnvvp)。
验证安装
cmd窗口输入:nvcc -v
或者
cmd切换cuda安装目录,进extras/demo_suite
目录,执行里面的bandwidthtest.exe
,再执行devicequery.exe
,结果显示pass即是成功
五、配置cudnn
下载
进官网,需要登陆nvidia账号,并且注册成开发者,完成后进入下载界面
解压,全选复制,黏贴到cuda安装目录,全部"是"即可


六、安装pytorch(torch+torchversion+torchaudio)
下载
打开cmd,进入之前创建的虚拟环境yolov8
,复制torch官网conda语句,安装pytorch
官网安装pytorch语句在这,一定要看好自己需要哪个torch版本、cuda版本
conda activate yolov8
# -c pytorch可以去掉,即不指定pytorch官方channel下载,国内快一点
conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.6 -c nvidia
# 或者pip下载 (2选1)
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116
如果有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]])
七、环境测试
部署测试环境
先不新建项目,打开之前拉取下拉的yolo8 github项目,配下上面新建的conda环境yolov8
,查看虚拟环境放哪了可以用conda info -e
拉取后打开pycharm,给这个项目配下上面创建的conda虚拟环境yolov8



左下角终端打开,安装项目依赖
pip install -r requirements.txt


验证cudnn
打开后新建一个自定义文件夹,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
这时就可能用到这个官网中文readme。使用方式有两种,命令行
(cli) 和 python代码
cli
在项目里有个图片ultralytics/assets/bus.jpg
,可以使用yolov8n.pt
模型对这个图片做一个简单的推理
# 需要先安好这个库
pip install ultralytics
yolo predict model=yolov8n.pt source='可以填文件绝对路径或者网络上的图片url'
推理结果保存在了runs\detect\predict
,我在c:\users\administrator>
执行的这个命令,所以文件在c:\users\administrator\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\val7
image 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命令参数解释
task
- detect:指定任务为目标检测,即通过模型识别图像或视频中的物体,然后在图像上标注出它们的位置。
- classify:指定任务为图像分类,即通过模型将图像分为不同的类别。
- segment:指定任务为图像分割,即将图像分割为不同的区域,并为每个区域分配一个标签。
mode
- train:指定模式为训练模式,用于训练模型。
- predict:指定任务为预测,即使用训练好的模型对新的图像进行预测。
- val:指定验证模式,用于评估模型在验证集上的性能。
- export:指定任务为导出模型,即将训练好的模型导出到其他格式,如onnx。
model
- yolov8n.pt:指定模型的文件名或路径,其中yolov8n.pt表示模型的文件名。
- yolov8n-cls.yaml:指定用于图像分类的模型配置文件的文件名或路径。
- yolov8n-seg.yaml:指定用于图像分割的模型配置文件的文件名或路径。
key | value | description |
---|---|---|
data | none | 数据文件路径,例如 coco128.yaml |
imgsz | 640 | 图像尺寸,可以是一个标量或 (h, w) 的列表,例如 (640, 480) |
batch | 16 | 每个批次的图像数(-1 表示自动批处理) |
save_json | false | 是否将结果保存为 json 文件 |
save_hybrid | false | 是否保存标签的混合版本(标签 + 额外的预测结果) |
conf | 0.001 | 目标置信度阈值,用于检测 |
iou | 0.6 | nms(非最大抑制)的交并比阈值 |
max_det | 300 | 每张图像的最大检测数 |
half | true | 是否使用半精度(fp16) |
device | none | 运行模型的设备,例如 cuda device=0/1/2/3 或 device=cpu |
dnn | false | 是否使用 opencv dnn 进行 onnx 推断 |
plots | false | 训练过程中是否显示图表 |
rect | false | 针对最小填充的每个批次进行矩形验证 |
split | val | 用于验证的数据集拆分,例如 ‘val’、‘test’ 或 ‘train’ |
发表评论