PaddlePaddle支持在移动设备上,使用训练好的模型进行离线推断。这里,我们主要介绍如何在移动设备上部署PaddlePaddle推断库,以及移动设备上可以使用到的一些优化方法。
PaddlePaddle可以通过原生编译、交叉编译的方式,构建多种移动平台上的推断库。
- Android平台编译指南
- iOS平台编译指南
- Rapsberry Pi3平台编译指南
- NVIDIA Driver PX2平台,采用原生编译的方式,可直接依照PaddlePaddle源码编译指南进行编译
移动端对接入库的大小通常都有要求,在编译PaddlePaddle库时,用户可以通过设置一些编译选项来进行优化。
训练得到的模型,可在不降低或者轻微降低模型推断精度的前提下,进行一些变换,优化移动设备上的内存使用和执行效率。
- 合并网络中的BN层
- 压缩模型大小的rounding方法
- 如何合并模型
- INT8量化方法
基于PaddlePaddle框架,可以使用模型压缩训练进一步裁剪模型的大小。
我们列出一些移动设备上的性能测试数据,给用户参考和对比。
- Mobilenet模型性能数据
- ENet模型性能数据
- DepthwiseConvolution优化效果
本教程由PaddlePaddle创作,采用Apache-2.0 license许可协议进行许可。