问题:要将在YOLOX中生成的权重文件.pth转成.onnx格式时报错
解决:按最新的使用例子去改写
正确格式(21/10/30):
python3 tools/export_onnx.py --output-name yolox_s.onnx -n yolox-s -c yolox_s.pth
所以错误代码:
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__:<module>:116 - An error has been caught in function '<module>', process 'MainProcess' (1824), thread 'MainThread' (7948):
完整报错如下:
(mypytorch) P:\PytorchProject\YOLOX>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__:<module>:116 - An error has been caught in function '<module>', process 'MainProcess' (1824), thread 'MainThread' (7948):
Traceback (most recent call last):
> File "tools\export_onnx.py", line 116, in <module>
main()
└ <function main at 0x0000025294D575E0>
File "tools\export_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...
│ └ <function BaseExp.merge at 0x0000025294D573A0>
└ ╒══════════════════╤════════════════════════════╕
│ keys │ values │
╞══════════════════╪═════...
File "P:\PytorchProject\YOLOX\yolox\exp\base_exp.py", line 64, in merge
assert len(cfg_list) % 2 == 0
└ ['weights/yolox_nano.onnx']
AssertionError: assert len(cfg_list) % 2 == 0
附图:
没看懂,去找官方文档,按最新的使用例子去改写后,正常运行