Android Neural Networks API (NNAPI)是Android C API, 使用NDK进行编译运行。它设计用于在移动设备上运行机器学习的计算密集型操作。NNAPI旨在为构建和训练神经网络的高级机器学习框架(如TensorFlow Lite,Caffe2或其他)提供基础层功能。NNAPI适用于Android8.1 及以上系统
NNAPI支持在Android 设备上通过使用开发人员之前定义并且训练好的模型进行推理。包括图像分类,预测用户行为等。在设备上推理有如下优点
NNAPI Runtime
NNAPI旨在被机器学习库,框架和工具所调用,它可以让开发人员将他们的模型脱离设备训练后在Android设备上进行部署。应用程序通常不会直接使用NNAPI,而是直接使用更高级别的机器学习框架。这些框架反过来可以使用NNAPI在受支持的设备上执行硬件加速推理操作。
基于应用程序的需求和设备上的硬件功能,Android的神经网络runtime可以有效地将计算工作量分配到可用的设备上,包括专用的神经网络硬件,图形处理单元(GPU)和数字信号处理器(DSP)
NNAPI Runtime同样可以在CPU上运行优化后的code。下图是NNAPI的high-level的系统架构。