看了华为HIAIDDK用户手册,目前关于hikey970跑神经网络的资料比较少,官方资料是不错的学习工具,下面的的内容都是根据手册的内容整理、翻译相关内容了一下:
《Huawei HiAI DDK User Manual》
下载地址:https://download.csdn.net/download/qqqzmy/10541757
1、overview
HiAI是华为的一款面向移动端的人工智能计算平台。HIAIAPI发布于一个统一的二进制文件中,利用HIAI异构计算平台加速神经网络的计算。
目前,这些API只能在Kirin系统芯片(SoC)上运行,并集成到使用Kirin SoC的Android系统中,允许开发人员在集成环境中运行神经网络模型,并调用HIAIAPI来加速计算。HIAI设备开发工具包(DDK)是向第三方开发人员提供的HIAI资源包.
2、ddk description DDK描述
HIAI DDK为ai应用程序开发者提供了ai模型管理器。它是一个模型管理接口,提供模型加载、模型计算和模型卸载等功能。HIAI DDK计算库在脱机模式下运行。它使用编译和优化的离线模型来执行神经网络计算。减少了内存使用,同时提高了计算性能。可以使用专用转换工具将caffe或tensorflow模型转换为脱机模型。HIAIDDK提供了一个模型转换工具,用于将caffe或TensorFlow模型转换为npu模型。
一个完整的DDK包含五个部分,如图2-1所示:
APP_Source:包含安卓演示应用程序的源代码。
DDK:包含HIAIOpenSDK。
document:文档包含用于开发的参考文档。
Tools_Caffe和Tools_TensorFlow包含用于生成指定格式模型的工具。
其中的APP_Source存放有一个使用SqueezeNet例子,下载路径:
https://github.com/DeepScale/SqueezeNet/tree/master/SqueezeNet_v1.1
该应用程序源代码提供了一系列同步和异步示例代码示例,包括输入预处理、模型加载、模型正演计算、前向计算结果的后处理、模型卸载和时间统计收集。
使用AndroidStudio2.2或更高版本。(有关详细信息,请访问Google Android开发人员的网站:
https://developer.android.com/studio/index.html
导入应用程序源代码并运行。该应用程序支持从图库中选择图片或使用相机拍照。图2-2显示了DDK应用程序的运行效果。
其中的DDK文件夹由两部分组成:
一、ai_ddk_demo:使用集成到DDK接口的图片分类识别演示程序。在ai_ddk_demo中,classify_jni.cpp是一个同步Java本机接口(JNI)演示程序,classify_async_jni.cpp是一个异步JNI演示程序。buildModel.cpp是一个在线编译模型演示程序。
二、ai_ddk_lib:包含相关库和相关头文件。
libai_client.so是DDK依赖的动态库。
HiAIModelManager.h是DDK中的头文件,包含Libai_client.so文件中的函数声明。
其中描述了如何使用HIAIDDK使用全过程案例。
其中的document由4部分组成:
Huawei HiAI DDK user manual,描述DDK中提供的接口和错误代码。
Huawei HiAI DDK integration case其中描述了如何使用HIAIDDK使用全过程案例。
Operator specification description document,描述由HIAI DDK V150支持的运算符和支持限制。
Tools的组成部分:
在使用HIAI加速Caffe和TensorFlow模型之前,需要将模型转换为指定的格式。Caffe和TensorFlow模型分别提供了转换工具。
3、Integration Overview
下图显示了集成过程。
HIAI DDK的整合包括以下步骤:
步骤1:评估操作符的兼容性。注:目前,HIAI平台不支持用户定义的操作类型。
步骤2:转换模型格式。在完成运算符兼容性评估之后,您需要将caffe或TensorFlow模型转换为HIAI平台支持的模型格式。
步骤3:集成模型。模型集成包括六个步骤:模型预处理、创建模型管理器、加载转换模型、计算模型、卸载模型和销毁模型管理器。
4、开发环境
模型转换工具运行在Linux平台上。要下载Linux映像,请访问http:/mirrors.ustc.edu.cn/。
建议将NDKr14b或更高版本用于DDK编译。要下载ndk,请访问
https://developer.android.com/ndk/downloads/index.html.
使用JDK 8 Android Studio进行应用程序开发。要下载java jdk 8,请访问
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.
5、支持的操作符
有关详细信息,请参阅Huawei HiAI DDK Operator Specification Document.
6、限制
当用户apk使用DDK时,需要调用加载、运行和卸载离线模型的接口来计算HIAI异构加速系统上的用户输入数据。
手机上的ROM和RAM有限,模型的大小要求如下:
模型大小要小于等于100MB,峰值内存使用大小要小于200MB
7、模型的转换
要使用HIAI DDK进行模型加速,需要将caffe和tensorflow模型转换为指定格式。
这篇文章先写前面介绍部分,后面的详细内容在以后的博客会写出来