yolo 模型转换教程

iOS yolo 函数:使用 .mlpackage 或 .mlmodel 格式模型。

.mlpackage:模型目录名称必须是 .mlpackage 结尾

.mlmodel:模型路径设置到 .mlmodel 文件即可

参考资料:https://developer.apple.com/machine-learning/models/

安卓 yolo 函数:需使用 .ncnn 格式模型,具体转换方式详见下方。

准备工作

1、python v3.8 或以上版本环境(通过 Anaconda 或 Miniconda 等虚拟环境管理软件可以切换 python 版本及环境,以避免环境冲突,非必要)

2、以上格式模型均由 .pt 模型转换,因此需先自行训练 .pt 模型。

转换步骤(.pt 转 .ncnn)

步骤 1:安装必要依赖包

如已安装可以跳过

//安装ultralytics、pnnx、ncnn
pip install ultralytics pnnx ncnn -i https://mirrors.aliyun.com/pypi/simple/

//安装PyTorch(任选一种方式)
//方法一:使用 conda虚拟环境安装(推荐):
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
//方法二:使用 pip 安装:
pip install torch torchvision torchaudio

步骤 2:切换工作目录到模型目录

打开命令行终端输入:

//切换盘符
f:
//切换工作目录到.pt模型存放目录
cd yourModelDir

yourModelDir:为你的 .pt 模型存放目录,实际操作过程中替换成自己的目录,以下步骤中同义。

yourModelName:为你的模型名称,实际操作过程中替换成自己的模型名称,以下步骤中同义。

如未切换工作目录,后续操作需使用绝对路径

步骤 3:导出 torchscript 文件

yolo export model=yourModelName.pt format=torchscript

导出成功后将在工作目录 yourModelDir 下生成同名 .torchscript 文件,即 yourModelName.torchscript。

步骤 4:静态形状转换

pnnx yourModelName.torchscript

转换成功后将在工作目录yourModelDir下生成:

Python模型定义文件,后续转换标准版模型需要用到:

yourModelName_pnnx.py

yourModelName.ncnn.bin

yourModelName.ncnn.param

步骤 5:修改 yourModelName_pnnx.py文件设置 不同 yolo 版本修改位置不同,以 ncnn 官方教程为准,以 yolov8 为例:

修改前:

v_165 = v_142.reshape(1, 87, 6400)
v_166 = v_153.reshape(1, 87, 1600)
v_167 = v_164.reshape(1, 87, 400)
v_168 = torch.cat((v_165, v_166, v_167), dim=2)

修改后:

v_165 = v_142.reshape(1, 87, -1).transpose(1, 2)
v_166 = v_153.reshape(1, 87, -1).transpose(1, 2)
v_167 = v_164.reshape(1, 87, -1).transpose(1, 2)
v_168 = torch.cat((v_165, v_166, v_167), dim=1)
return v_168

注意:v_165-v_168 的 reshape 第 1、第 2 个参数值不固定,修改前后需保持一致,即如修改前是 1, 87,修改后还是保持 1, 87。

步骤 6:重新导出torchscript

python -c "import yourModelName_pnnx; yourModelName_pnnx.export_torchscript()"

输出成功后将在工作目录 yourModelDir 下生成:

yourModelName_pnnx.py.pt

步骤 7:动态形状转换

pnnx yourModelName_pnnx.py.pt inputshape=[1,3,640,640] inputshape2=[1,3,320,320]

转换成功后将在工作目录 yourModelDir 下生成:

yourModelName_pnnx.py.ncnn.bin

yourModelName_pnnx.py.ncnn.param

Copyright 北京帮你玩科技有限公司 2026 all right reserved,powered by Gitbook该文章修订时间: 2026-07-03 17:48:45

results matching ""

    No results matching ""