- 1、支持OnnX的插件开发,并且实现CenterNet的DCNv2插件demo(fp32/fp16)和Inference实现,附有案例
- 2、不建议使用pytorch->caffemodel->tensorRT,改用pytorch->onnx->tensorRT,对于任何特定需求(例如dcn、例如双线性插值),可以用插件实现
- 3、如果不用这里提供的框架,自己实现onnx插件,这里有一份指导,说明了关键点,可以做参考
- 4、视频讲解点击这里:https://www.bilibili.com/video/BV1Pe411x7qr
- 安装protobuf v3.8.x,点击README.onnx.plugin.md有提到怎么装
bash getDLADCN.sh
make run -j32
auto engine = TRTInfer::loadEngine("models/efficientnet-b0.fp32.trtmodel");
float mean[3] = {0.485, 0.456, 0.406};
float std[3] = {0.229, 0.224, 0.225};
Mat image = imread("img.jpg");
engine->input()->setNormMat(0, image, mean, std);
engine->forward();
engine->output(0)->print();
- tensorRT7.0.0.11 (如果修改为6或者其他版本,可能会面临一点改动)
- opencv3.4.6(可以任意修改为其他版本)
- cudnn7.6.3(可以任意修改为其他版本)
- cuda10.0(可以任意修改为其他版本)
- protobuf v3.8.x
- Visual Studio 2017(可以用其他版本打开,但需要修改对应opencv版本)
- 如果要修改版本,你需要下载cuda/cudnn/tensorRT三者同时匹配的版本,因为他们互相存在依赖,否则只要你是cuda10.0就可以很轻易编译这个项目
- Windows下的依赖库lean.zip下载
- protobuf v3.8.x
- cuda10.2 (可以任意修改为其他版本)
- cudnn7.6.5.32-cuda10.2 (可以任意修改为其他版本)
- opencv4.2.0 (可以任意修改为其他版本)
- TensorRT-7.0.0.11 (如果修改为6或者其他版本,可能会面临一点改动)
- pytorch到onnx(autograd.Function类特殊自定义实现函数导出成插件),参考plugin_onnx_export.py
- onnx插件MReLU参考MReLU.cu,和HSwish参考HSwish.cu
- src/plugin底下的插件是实现caffemodel的插件方法,与onnx不兼容,并且不被推荐使用
- int8已经失效,如果需要int8,可以使用之前的版本并替换为tensorRT6.0