ScaledYOLOv4 icon indicating copy to clipboard operation
ScaledYOLOv4 copied to clipboard

使用onnx做推理

Open dongfangzhizhu opened this issue 5 years ago • 2 comments

使用export_onnx.py导出的onnx模型做推理,输出的shape为(1, 4, 80, 80, 19),而原模型输出的为[1, 89760, 19],请问下是什么原因造成的呢,或者有没有什么办法保持两者输出一致呢?

dongfangzhizhu avatar Feb 19 '21 06:02 dongfangzhizhu

如果你用的是TensorRT 7.0及以下的版本,则转onnx时opset_version=10,此时需要按照https://github.com/DataXujing/ScaledYOLOv4/blob/main/models/yolo.py#L16将7个output转为[1,89760,19]维度的tensor,如果你是用的是TensorRT 7.2则在转onnx时opset_version=12,此时是可以正常输出[1,89760,19]维度的tensor的

DataXujing avatar Mar 01 '21 13:03 DataXujing

感谢回复,export_onnx.py中opset_version默认值已经是12了,我可能没有表述好,如果是onnx输出的,这种shape使用non_max_suppression方法是无法解析正确的,请问如何才能解析为形如(x1, y1, x2, y2, conf, cls)这种结果呢

dongfangzhizhu avatar Mar 02 '21 03:03 dongfangzhizhu