yolov5模型转换的坑(pt > ONNX > CoreML > tflite)

背景:最近在做目标检测,其中用到的yolov5模型,框架是pytorch,由于想要把模型部署到移动端,因此需要模型格式的转换,思路如题目:pt > ONNX > CoreML > tflite

官方GitHub链接ultralytics的yolov5.

转换时遇到了问题,将原始模型文件.pt转化为onnx和torchscript都成功了
yolov5模型转换的坑(pt > ONNX > CoreML > tflite)_第1张图片
但转化为coreml时失败了,由于各种原因,这是最不能失败的一个,我需要它,失败原因如下
在这里插入图片描述

官方的issue里有这个问题,可是并无luan用,经过多方搜寻,终于找到了问题根源:pytorch版本问题

我用的是1.7.0,需要1.6.0

代码如下

!pip uninstall torch
!pip install torch==1.6.0

重新安装后,再次进行export

!python ./models/export.py --weights ./runs/train/exp2/weights/best.pt --img 1024 --batch 1

又遇到新的问题
yolov5模型转换的坑(pt > ONNX > CoreML > tflite)_第2张图片
这个好解决啊,更新protocol buffer runtime版本就好了,不过不用这么麻烦了,重新安装torch,用下面的命令:

!pip uninstall torch
!pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

然后再export,finally!
yolov5模型转换的坑(pt > ONNX > CoreML > tflite)_第3张图片

你可能感兴趣的:(目标识别,深度学习,yolov5,模型格式转换,coreml,pytorch)