Paddle Lite 是飛槳的端側推理引擎,具有高效能、多硬體、輕量級的特點,它支援飛槳/TensorFlow/Caffe/ONNX等模型在ARM CPU, Mali GPU, Adreno GPU, Huawei NPU 等多種硬體上的推理部署,效能達到業內領先。
目前Paddle Lite保持快速的迭代優化升級,距離正式版2.0.0釋出僅一個月,Paddle Lite又一次釋出了2.1.0版本。
Paddle Lite的Github連結:
https://github.com/PaddlePaddle/Paddle-Lite
01 Paddle Lite v2.1.0的重點功能
1.新增ARM端影像預處理庫,用於影像預處理,它可以
支援多種顏色空間轉換,如NV12_To_RGB、GRAR_To_RGB等
支援多種影像預處理操作,如影像旋轉、翻轉等
支援影像資料到Tensor的轉換,如RGB_To_NCHW(Tensor)等
相關功能效能優於OpenCV。對1920x 1080的BGR影像,做如下操作:
o Resize:1920x 1080 --540x960
o Rotate:1920x 1080 旋轉90度
o Flip:沿xy軸對角線翻轉
與OpenCV在ARM v7 4執行緒下的效能對比資料如下圖所示:
2.新增按模型集合裁剪預測庫的功能。開發者可以通過該功能只保留給定多個模型線上預測所需要的op和kernel,從而壓縮預測庫體積。
3.優化報錯資訊,在Android中支援原生系統報錯。
02 Paddle Lite v2.1.0更多新特性一覽
1.基礎功能升級
a.新增op
x86 tanh, gelu
x86 stack
b.op升級,與飛槳 v1.6對齊
reshape支援輸入用std::vector<Tensor<int32>>描述shape資訊
slice支援starts、ends用Tensor、TensorList描述
lookup_table 去除最後一維必須為1的限制,保留原op,新增op為lookup_table_v2
resize_bilinear和resize_nearest,增加用TensorList和Tensor描述resize的shape資訊
c.新增模型
x86增加MobileNetV1, MobileNetV2支援
d.API對齊
Python、Java、C++三種 API核心介面對齊:
MobileCo
nfig模式下,Python , Java,C++介面完整對齊,適用於移動端的輕量級部署場景CxxConfig 模式下,Python,C++介面完整對齊,適用於非輕量級部署場景
e.升級量化模型支援
支援飛槳訓練後量化方法產出的量化模型,比如MobileNetV1、 MobileNetV2、ReseNt50
支援飛槳量化訓練方法產出權重量化方式為channel_wise_abs_max的量化模型
f.預測庫整理
重新整理核心庫包含的(basic) op&kernel,使基礎預測庫(build_extra=OFF
)支援CV類9個經典模型(包括飛槳原生模型和對應的 X2Paddle第三方轉化模型)和3個量化模型,且tiny_publish
下預測動態庫體積不變。支援模型如下:
9個經典模型及其飛槳轉化模型:MobileNetV1、MobileNetV2、MnasNet、ResNet50、YOLOv3、SSD_MobileNetV1、 U-Net、SqueezeNet_v1.1、ShuffleNet_v2
3個int8量化模型:MobileNetV1、MobileNetV2、ResNet50
2.效能優化
主流模型的效能優化持續迭代。以MobileNetV1為例,效能保持領先,如下圖所示:
改進ARM CPU conv3x3實現方式,ResNet、SqueezeNet等模型效能提升。ResNet50效能如下圖所示:
3.編譯
X86與CUDA編譯時第三方庫下載加速 (X86編譯相關的第三方庫
Eigen
、MKLML、xxHash
改為從百度雲地址下載,加速編譯過程)NPU的編譯支援華為官方最新版HiAI DDK 310
4.文件
新增Pass介紹與註冊方法文件:
https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/add_new_pass/
補齊了 Cxx API文件:
https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/cxx_api_doc/
新增CV影像預處理庫API介面介紹文件:
https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/cv/
新增部署訓練後量化模型的使用示例文件:
https://paddlepaddle.github.io/Paddle-Lite/v2.1.0/model_quantization/#%E8%AE%AD%E7%BB%83%E5%90%8E%E9%87%8F%E5%8C%96
5.Bug修復
修補了一些上個版本中存在的Bug。
如果您想了解更多關於Paddle Lite的相關內容,請參閱以下文件:
Paddle Lite的Github連結:
https://github.com/PaddlePaddle/Paddle-Lite
Paddle Lite的文件連結:
https://paddlepaddle.github.io/Paddle-Lite/
Paddle Lite Demo的連結:
https://github.com/PaddlePaddle/Paddle-Lite-Demo
飛槳的Github連結:
https://github.com/paddlepaddle
如果使用過程中遇到任何問題,大家可通過Paddle Lite官方QQ群與開發人員進行技術交流及問題反饋,群號:696965088。