简介
部署流程
1、生成TensorRT的模型engine,如果新的网络有些层TensorRT不支持,还需要写这些特定层的plugin,转换好后,可以直接用TensorRT测试下;
2、通过Trtserver(TensorRT Inference Server),现在叫TriTon调用第一步生成的model引擎;
3、安装有trtserver-clientSDK的客户端调用模型进行推理;
注意: 模型转TensorRT时,如果是pytorch–>>ONNX–>>trt, tensorflow(.pb)–>uff–>>trt或者ckpt–>>ONNX–>>trt;
2、3部是trtserver调用模型开启服务,轮询指定端口,客户端调用,这种方式和tf-serving部署pb模型方式类似;
其他部署方式:(libtorch、torchscript)或者RestfulAPI形式(fastapi/flask进行调用模型,开通服务端口)
上述部署方式都可以进一步结合k8s和docker,部署成微服务的形式。
思考:trtserver主要用于资源调度层面的(更加上层),TensorRT主要用于模型的推理加速方面,因此trtserver更像是tf-serving的功能;
在模型转TensorRT之前,可以进一步采用量化、剪枝等技术实现模型压缩;
示例
References
https://github.com/isarsoft/yolov4-triton-tensorrt
https://github.com/layerism/TensorRT-Inference-Server-Tutorial