根据hi3519提供的教程进行如下操作:
代码下载命令
git clone https://github.com/ultralytics/ultralytics.git
在源码路径中运行命令
git reset --hard d3f097314f9478de7f995d4e4b4ccb0c6fbc65d3
pip install -r requirements.txt
pip install --upgrade pip
pip install -r requirements_yolov8.txt
git apply --reject 0001-yolov8-rpn.patch
然后执行自训练数据集(基于yolov8n)转 onnx代码:
from ultralytics import YOLO
model = YOLO("best.pt")
success = model.export(format="onnx", opset=13)
提示如下错误:
File "/home/hi3516/ultralytics/ultralytics/yolo/engine/model.py", line 319, in export
return Exporter(overrides=args, _callbacks=self.callbacks)(model=self.model)
File "/home/hi3516/conda/envs/yolov8/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/home/hi3516/ultralytics/ultralytics/yolo/engine/exporter.py", line 196, in __call__
y = model(im) # dry runs
File "/home/hi3516/conda/envs/yolov8/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "/home/hi3516/ultralytics/ultralytics/nn/tasks.py", line 203, in forward
return self._forward_once(x, profile, visualize) # single-scale inference, train
File "/home/hi3516/ultralytics/ultralytics/nn/tasks.py", line 58, in _forward_once
x = m(x) # run
File "/home/hi3516/conda/envs/yolov8/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "/home/hi3516/ultralytics/ultralytics/nn/modules.py", line 422, in forward
x_cat = torch.cat([xi.view(shape[0], self.no, -1) for xi in x], 2)
File "/home/hi3516/ultralytics/ultralytics/nn/modules.py", line 422, in <listcomp>
x_cat = torch.cat([xi.view(shape[0], self.no, -1) for xi in x], 2)
RuntimeError: shape '[1, 144, -1]' is invalid for input of size 416000
这个代码如果将best.pt换成yolov8的基础模型yolov8n.pt ,则可以转换成功;
如果没有git apply --reject 0001-yolov8-rpn.patch
也可以转换成功
根据hi3519提供的教程进行如下操作:
代码下载命令
git clone https://github.com/ultralytics/ultralytics.git
在源码路径中运行命令
git reset --hard d3f097314f9478de7f995d4e4b4ccb0c6fbc65d3
pip install -r requirements.txt
pip install --upgrade pip
pip install -r requirements_yolov8.txt
git apply --reject 0001-yolov8-rpn.patch
然后执行自训练数据集(基于yolov8n)转 onnx代码:
from ultralytics import YOLO
model = YOLO("best.pt")
success = model.export(format="onnx", opset=13)
提示如下错误:
File "/home/hi3516/ultralytics/ultralytics/yolo/engine/model.py", line 319, in export
return Exporter(overrides=args, _callbacks=self.callbacks)(model=self.model)
File "/home/hi3516/conda/envs/yolov8/lib/python3.7/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/home/hi3516/ultralytics/ultralytics/yolo/engine/exporter.py", line 196, in __call__
y = model(im) # dry runs
File "/home/hi3516/conda/envs/yolov8/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "/home/hi3516/ultralytics/ultralytics/nn/tasks.py", line 203, in forward
return self._forward_once(x, profile, visualize) # single-scale inference, train
File "/home/hi3516/ultralytics/ultralytics/nn/tasks.py", line 58, in _forward_once
x = m(x) # run
File "/home/hi3516/conda/envs/yolov8/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1194, in _call_impl
return forward_call(*input, **kwargs)
File "/home/hi3516/ultralytics/ultralytics/nn/modules.py", line 422, in forward
x_cat = torch.cat([xi.view(shape[0], self.no, -1) for xi in x], 2)
File "/home/hi3516/ultralytics/ultralytics/nn/modules.py", line 422, in <listcomp>
x_cat = torch.cat([xi.view(shape[0], self.no, -1) for xi in x], 2)
RuntimeError: shape '[1, 144, -1]' is invalid for input of size 416000
这个代码如果将best.pt换成yolov8的基础模型yolov8n.pt ,则可以转换成功;
如果没有git apply --reject 0001-yolov8-rpn.patch
也可以转换成功