在利用https://github.com/Tianxiaomo/pytorch-YOLOv4进行darknet->onnx->tensorRT的模型转变的时候出现了如下错误:
[07/13/2020-21:58:49] [E] [TRT] Layer: Where_493's output can not be used as shape tensor.
[07/13/2020-21:58:49] [E] [TRT] Network validation failed.
[07/13/2020-21:58:49] [E] Engine creation failed
[07/13/2020-21:58:49] [E] Engine set up failed
这里先引用了issue里面的错误 ,我在x86的服务器上出现了这样的错误,但是在jetson nano以及xavier的开发板上并没有出现这样的错误。
根据官方人员的解答,是pytorch与tensorrt的版本的问题
根据Readme的要求。
- Pytorch 1.4.0 for TensorRT 7.0 and higher
- Pytorch 1.5.0 and 1.6.0 for TensorRT 7.1.2 and higher
在jetson开发板上tensorRT的版本是7.1.2,所以当时用pytorch 1.6.0将darknet权重转化的onnx在转成trt模型就没有问题。
但是x86服务器上的tensorRT的版本是7.0.0。所以必须要用pytorch 1.4来转换成onnx模型。