1、简介
定义与功能:Android Neural Networks API(NNAPI)是一个Android C API,旨在Android设备上实现机器学习,它为更高层级的机器学习框架(如TensorFlow Lite和Caffe2)提供基础功能层,用于建立和训练神经网络。
版本要求:搭载Android 8.1(API级别27)或更高版本的Android设备上都提供该API。
主要优势:在设备上进行推断的优势包括低延迟、高可用性、快速度、隐私保护和低成本。
2、核心概念
模型:由数学运算和通过训练过程学习到的常量值构成的计算图,这些运算特定于神经网络,例如二维卷积、逻辑激活函数和修正线性激活函数等。
编译:表示用于将NNAPI模型编译到更低级别代码中的配置,创建编译是一项同步操作,成功创建后,可在线程和执行之间重用编译。
内存:表示共享内存、内存映射文件和类似内存缓冲区,应用一般会创建一个共享内存缓冲区,其中包含定义模型所需的每个张量。
执行:用于将NNAPI模型应用到一组输入并收集结果的接口,执行可以同步执行,也可以异步执行。
3、运行时
硬件支持:Android的神经网络运行时可以在设备上的处理器(包括专用的神经网络硬件、图形处理单元(GPU)和数字信号处理器(DSP))之间高效地分配计算工作负载。
系统架构:NNAPI应由机器学习库、框架和工具调用,这样可让开发者在设备外训练他们的模型,并将其部署在Android设备上。
4、编程模型
构造有向图:先构造一张有向图来定义要执行的计算,此计算图与输入数据相结合,构成NNAPI运行时求值的模型。
运算数规范:添加运算数的顺序无关紧要,重要的是在引用运算数时使用正确的索引值,每个运算数必须是一项运算的模型输入、常量或输出运算数。
5、示例应用
ML模型绑定插件:Android Studio 4.1或更高版本提供了ML模型绑定插件,使开发者可以轻松地使用自定义TF Lite模型。
PyTorch Mobile:从Pytorch 1.3开始,开发者可以使用Pytorch将模型部署到Android设备中。
ncnn框架:ncnn是腾讯公司开源的一个专为手机端极致优化的高性能神经网络前向计算框架,支持大部分的CNN网络,包括yolov5。
6、相关技术
TensorFlow Lite:TensorFlow Lite是一种针对移动和嵌入式设备的轻量级解决方案,可以将TensorFlow模型转换为TensorFlow Lite模型,以便在资源受限的设备上运行。
CameraX:在进行实时图像分类时,可以使用CameraX将每个帧传递给可以执行推理的函数。
以下是相关问题与解答的栏目:
问题1:如何在Android设备上部署PyTorch模型?
答:要在Android设备上部署PyTorch模型,首先需要准备好训练好的模型并保存,在app下的build.gradle文件中添加必要的依赖项,在MainActivity.java文件中读取图片数据和模型,将图像转换为Tensor,运行模型得到输出Tensor,最后处理结果,具体步骤可以参考文章四。
问题2:如何在Android中使用ncnn框架进行目标检测?
答:要在Android中使用ncnn框架进行目标检测,首先需要拉取yolov5 for android的源码,并下载编译好的包,根据ncnn的版本发布页提供的指南进行配置和编译,将ncnn集成到Android项目中,编写相应的代码进行目标检测,具体步骤可以参考文章五。
各位小伙伴们,我刚刚为大家分享了有关“android神经网络”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/633798.html