问题:要将在YOLOX中生成的权重文件.pth转成.onnx格式时报错
解决:按最新的使用例子去改写
正确格式(21/10/30):
python3 tools/export_onnx.py --output-name yolox_s.onnx -n yolox-s -c yolox_s.pth
请看参考:YOLOX/demo/onNXRuntime at main · Megvii-baseDetection/YOLOX · GitHubYOLOX is a high-performance anchor-free YOLO, exceeding yolov3~v5 with MegEngine, ONNX, TensorRT, ncnn, and OpenVINO supported. documentation: https://yolox.readthedocs.io/ - YOLOX/demo/onNXRuntime at main · Megvii-baseDetection/YOLOXhttps://github.com/Megvii-baseDetection/YOLOX/tree/main/demo/ONNXRuntime
所以错误代码:
python tools/export_onnx.py -n yolox-nano -c weights/yolox_nano.pth --output name weights/yolox_nano.onnx
应该改为
python tools/export_onnx.py --output-name weights/yolox_nano.onnx -n yolox-nano -c weights/yolox_nano.pth
具体细节:
将pth转onnx时:使用了错误代码:
python tools/export_onnx.py -n yolox-nano -c weights/yolox_nano.pth --output name weights/yolox_nano.onnx
给出了报错信息:
ERROR | __main__:
完整报错如下:
(mypytorch) P:PytorchProjectYOLOX>python tools/export_onnx.py -n yolox-nano -c weights/yolox_nano.pth --output name weights/yolox_nano.onnx 2021-10-30 15:38:26.938 | INFO | __main__:main:59 - args value: Namespace(batch_size=1, ckpt='weights/yolox_nano.pth', dynamic=False, exp_file=None, experiment_name=None, input='images', name='yolox-nano', no_onnxsim=False, opset=11, opts=['weights/yolox_nano.onnx'], output='name', output_name='yolox.onnx') 2021-10-30 15:38:26.949 | ERROR | __main__::116 - An error has been caught in function ' ', process 'MainProcess' (1824), thread 'MainThread' (7948): Traceback (most recent call last): > File "toolsexport_onnx.py", line 116, in main() └ File "toolsexport_onnx.py", line 61, in main exp.merge(args.opts) │ │ │ └ ['weights/yolox_nano.onnx'] │ │ └ Namespace(batch_size=1, ckpt='weights/yolox_nano.pth', dynamic=False, exp_file=None, experiment_name=None, input='images', na... │ └ └ ╒══════════════════╤════════════════════════════╕ │ keys │ values │ ╞══════════════════╪═════... File "P:PytorchProjectYOLOXyoloxexpbase_exp.py", line 64, in merge assert len(cfg_list) % 2 == 0 └ ['weights/yolox_nano.onnx'] AssertionError: assert len(cfg_list) % 2 == 0
附图:
没看懂,去找官方文档,按最新的使用例子去改写后,正常运行



