一些基礎概念
-
Paddle Serving 、Paddle Inference、PaddleHub Serving三者的區別是什么?有什么樣的包含關系?
paddle serving是遠程服務,即發起預測的設備(手機、瀏覽器、客戶端等)與實際預測的硬件不在一起。paddle inference是一個library,適合嵌入到一個大系統中保證預測效率,paddle serving調用了paddle inference做遠程服務。paddlehub serving可以認為是一個demo,后面都會使用paddle serving作為統一預測服務入口。如果在web端交互,一般是調用遠程服務的形式,可以使用paddle serving的web service搭建。
*** paddle serving調用了paddle inference做遠程服務。
*** serving和inference交互通過百度的RPC框架。
From 飛槳PaddlePaddle官方csdn博客
什么是Paddle Inference原生高性能推理庫? 跟主框架的API如model.predict()等接口又是什么關系呢?哪個更原生些?
*** 在這邊給大家快速地科普一下:主框架的前向API接口model.predict() 是基於主框架的前向算子進行封裝,且直接調用訓練好的模型之前向參數,能夠快速測試訓練完成的模型效果,並將計算后的預測結果返回呈現,通常是用在驗證訓練成果及做實驗時使用。
*** 而一般的企業級部署通常會追求更極致的部署性能,且希望能夠在生產環境安裝一個不包含后向算子,比主框架更輕量的預測庫,Paddle Inference應運而生。Paddle Inference提取了主框架的前向算子,可以無縫支持所有主框架訓練好的模型,且通過內存復用、算子融合等大量優化手段,並整合了主流的硬件加速庫如Intel的oneDNN、NVIDIA的TensorRT等, 提供用戶最極致的部署性能。此外還封裝C/C++的預測接口,使生產環境更便利多樣。
已經,Paddle2.0時代,優先高版本。
Ref: https://www.paddlepaddle.org.cn/documentation/docs/zh/install/Tables.html#whl-release
jetpack4.4-cuda10.2-cudnn8-trt7.1.3 | paddlepaddle_gpu-2.1.1-cp36-cp36m-linux_aarch64.whl | - | paddlepaddle_gpu-2.1.1-cp38-cp38-linux_aarch64.whl |
具體實踐
PaddleOCR:
車牌識別
PaddleOCR相當於OpenCV里的Sample文件夾。
環境配置好后,使用其中的sample代碼去測試gpu版本的代碼。