直接运行
import torch
model = torch.load('models/yolov8n.pt')
报错
解决
pip install ultralytics
加了个
model.eval()
又报错了
原因是因为pt文件里面不包含网络结构,只有参数权重。
根据yolov8官网来做是这样
from ultralytics import YOLO
# Load a model
model = YOLO('models/yolov8n.pt') # load an official model
success = model.export(format="onnx", simplify=True) # export the model to onnx format
assert success
print("转换成功")
如果正常pt转成onnx的话,应该是这样的流程
import torch
net = torch.load('yolov8n.pt', map_location='cpu')
net.eval()
dummpy_input = torch.randn(1, 3, 640, 640)
torch.onnx.export(net, dummpy_input, 'yolov8n.onnx', export_params=True,
input_names=['input'],
output_names=['output'])
到现在的话,是有了onnx文件了。
然后到板子上,使用acuity-toolkit-binary-6.9.1
pegasus import onnx --model yolov8n.onnx --output-data yolov8n.data --output-model yolov8n.json
一直报错
这样修改,添加完整pegasus的路径
/home/yx/supernova/acuity/acuity-toolkit-binary-6.9.1/bin/pegasus import onnx --model yolov8n.onnx --output-data yolov8n.data --output-model yolov8n.json
/home/yx/supernova/acuity/acuity-toolkit-binary-6.9.1/bin/pegasus export ovxlib --model yolov8n.json --model-data yolov8n.data --dtype quantized --model-quantize yolov8n_uint8.quantize --batch-size 1 --save-fused-graph --target-ide-project 'linux64' --with-input-meta yolov8n_inputmeta.yml --postprocess-file yolov8n_postprocess_file.yml --output-path ovxlib/yolov8n/