V2.1.0
重点功能
- 新增ARM端图像预处理库
- 支持多种颜色空间转换,如
NV12_To_RGB
、GRAR_To_RGB
等 - 支持多种图像预处理操作,如图像旋转、翻转等
- 支持图像数据到tensor的转换,如RGB_To_NCHW(Tensor)等
- 相关功能性能优于 OpenCV 处理速度
- 支持多种颜色空间转换,如
- 增加多个模型裁剪预测库功能。用户给定多个模型,按需裁剪预测库的算子,只保留提供模型线上预测所需要的功能,最大化压缩预测库体积。相关文档可参考裁剪预测库方法。
- 加强报错信息,Android 中支持原生系统报错
基础功能升级
-
新增op
-
新增模型
- X86增加MobileNet_v1, MobileNet_v2支持,见pr2420
-
op升级,与飞桨核心框架(以下简称Paddle)对齐
-
api对齐
- python、java、C++三种 api核心接口对齐
- 其中,python 和 C++ 完整对齐了
MobileConfig
和CxxConfig
两个模式 - Java 定位为 Android端使用,只对其了
MobileConfig
- 其中,python 和 C++ 完整对齐了
- python、java、C++三种 api核心接口对齐
-
升级量化模型支持
-
预测库整理:重新整理核心库包含的(basic) OP&Kernel,使基础预测库(
build_extra=OFF
)完整支持CV相关9个核心模型(包括Paddle原生模型和对应的 X2Paddle第三方转化模型)和三个量化模型。且tiny_publish
下预测动态库体积不变。支持模型如下:-
9个基础模型及其 Paddle 转化模型:mobileNetV1、mobileNetV2、mnasnet、resnet50、yolov3、ssd_mobilenetv1、 unet、squeezenet_v11、shufflenet_v2
-
三个int8量化模型:mobilenet_v1、mobilenet_v2、resnet50
-
性能
- ARM CPU Conv3x3 性能提升。 改进ARM CPU Conv3x3实现方式,在Resnet、Squeezenet等模型上提升性能。
编译
- X86与 CUDA 编译时第三方库下载加速 (X86编译相关的第三方库
eigen、mklml、xxhash
改为从百度云地址下载,加速编译过程) - NPU的编译支持华为官方最新版HiAI DDK 310
文档
- 新增Pass介绍与注册方法文档
- 补齐了 Cxx API文档
- 新增CV图像预处理库API接口介绍文档
- 新增部署训练后量化模型的使用示例文档
Bug 修复
- 修复 jit::matmul 特定尺寸下计算错误的bug:输入x, shape(m, k) weight, shape(k, n),当k < 512,m==1, 且n是16的倍数时,jit分组group计算错误,详情见pr 2392
- 修复yolo_box cuda kernel多次运行结果出错的bug:多次运行时没有将上一次的结果清零,会保留之前计算的结果,详情见pr2245
- 修复fill_constant kernel的bug:没有用到dtype属性,默认输出float tensor,修复后根据dtype属性判断输出类型,详情见pr2376
- 修复convolution X86 kernel由于share_data_with导致的运行多次以后输出结果不正确的bug,详情见pr2420
- 修复多线程跑模型会随机crash的问题