linghu8812 / tensorrt_inference

705 stars 207 forks source link

onnx2trt报错 #34

Closed ycdhqzhiai closed 3 years ago

ycdhqzhiai commented 3 years ago

@linghu8812 感谢开源,我在运行yolov5 simple时候报错

Input filename:   ../weights/yolov5-sim.onnx
ONNX IR version:  0.0.6
Opset version:    12
Producer name:    pytorch
Producer version: 1.7
Domain:           
Model version:    0
Doc string:       
----------------------------------------------------------------
[01/21/2021-06:46:42] [W] [TRT] onnx2trt_utils.cpp:220: Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.
[01/21/2021-06:46:42] [W] [TRT] onnx2trt_utils.cpp:246: One or more weights outside the range of INT32 was clamped
terminate called after throwing an instance of 'std::out_of_range'
  what():  Attribute not found: axes
Aborted (core dumped)

tensorRT新手,想问下这个错误是什么原因

ycdhqzhiai commented 3 years ago

转onnx时候,修改了下Detect层

x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()

改为

x[i] = torch.squeeze(x[i])
x[i] = x[i].view(self.na, self.no, ny, nx).permute(0, 2, 3, 1).contiguous()

回复原始代码就正常了,不大明白为什么

linghu8812 commented 3 years ago

yolov5转onnx用的是原作者的么?

ycdhqzhiai commented 3 years ago

是的,自己加的squeeze转onnx是为了再其他平台上使用,去掉回复原始代码就好了

linghu8812 commented 3 years ago

我修改了一些yolo.py里面的内容:

https://github.com/linghu8812/yolov5/blob/11f7645e903377762622808aaa32d2369d89fc12/models/yolo.py#L39-L59

ycdhqzhiai commented 3 years ago

感谢,已经成功转成trt文件了,但是没有出框。我再仔细看看