看了华为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模型转换为指定格式。

这篇文章先写前面介绍部分,后面的详细内容在以后的博客会写出来

hikey970学习-003:DDK用户手册学习《Huawei HiAI DDK User Manual 》(1)相关推荐

  1. APP进阶实战:最快10分钟接入HUAWEI HiAI有感

    华为HiAI是面向移动终端的AI计算平台,了解HUAWEI HiAI的平台功能.优势.技术以及HUAWEI HiAI能为APP带来的价值,为开发者提供人工智能计算库及API,助力开发者便捷高效地编写在 ...

  2. HUAWEI HiAI常见FAQ小贴士

    8月7日,HUAWEI HiAI系统架构师在CSDN平台为广大开发者进行了以"APP进阶实战:最快10分钟接入HUAWEI HiAI"主题的直播,迎来600多名开发者在线上观看. ...

  3. 如何成为快手尬舞王?HUAWEI HiAI了解一下!

    左手!右手!抱一抱!扭一扭! 快手短视频,红遍东西南北中, 给大家的生活增添了不少乐趣. 有了人体姿态识别的魔法表情, 不会跳舞的也都可以跟着跳一跳. 从村口朴实的阿姨,到写字楼里端庄的白领, 在人体 ...

  4. STM32:从菜鸟到牛人就是如此简单!为了学习单片机而去学习单片机的思路是不对的

    来源于知乎,版权归原作者所有 为了学习单片机而去学习单片机的思路是不对的 你问: 如何系统地入门学习stm32? 本身就是一个错误的问题 假如你会使用8051 会写C语言 那么STM32本身并不需要刻 ...

  5. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)

    长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...

  6. 端侧AI进化论:HUAWEI HiAI Foundation的奇妙旅程

    从2017年开始,华为将端侧AI算力的概念带入了产业界.彼时,还有很多人讨论端侧AI计算是否有必要,是否具备前景等等问题.一转眼四年过去了,端侧的AI处理能力已经成为每家芯片厂商.移动终端厂商的必备能 ...

  7. 二元学习法3.0:三把学习大剑,打通学习的底层密码_学习方法

    单纯靠机会赚钱的时代已经过去,未来是认知赚钱的时代. 前两天还跟朋友聊到这个话题,未来的机会将会不断涌现,人工智能.5G.万物互联.虚拟现实-- 而这些东西,都跟知识挂钩.以前那种胆大就能挣钱,站在风 ...

  8. Java学习路线图,如何学习Java事半功倍?

    作为一个初学者想掌握Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你学习这事本来 ...

  9. 吴恩达深度学习ppt_【深度学习】吴恩达谈深度学习:数据科学家需要知道这些...

    数据科学家需要什么深度学习知识?吴恩达 (Andrew Ng)用机器看图说话,机器问答等实例告诉大家.本文是吴恩达在2015年12月在ExtractConf上的演讲摘录,含20分钟视频与ppt. An ...

  10. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

最新文章

  1. static和global的区别
  2. 论文 | 图像和谐化公开数据集:让前景和背景更“般配”
  3. c++17(26)-数组、二维数组的指针、指向数组的指针、指向数组的指针的指针
  4. js错误:对象不支持此属性或方法
  5. IOS15使用Masonry和自动计算Cell的高度
  6. 学习笔记(04):Python网络编程并发编程-什么是socket
  7. pugixml解析Word
  8. android input出现一个多余文本窗口 解决办法
  9. easyui表单提交,后台获取不到值
  10. Django-urls路由系统
  11. ubuntu18 mysql5.6源码_Ubuntu 18.04 使用Systemd管理MySQL 5.6
  12. ubuntu 18.04桌面版启动错误: Unable to mount root fs on unknown-block(0,0)
  13. pyppeteer-比 selenium 更高效的爬虫利器
  14. jQuery遮罩插件 jquery.blockUI.js
  15. 为什么 BI 软件都搞不定关联分析?带你分析分析
  16. java error 常见_javah 常见错误
  17. python计算小数点后有几位_小学数学有哪些数学计算技巧?
  18. 我的消费记录怎么查看呢?
  19. HDU 613 Kolakoski
  20. 工作总结:简明扼要,突出重点

热门文章

  1. 如何使用阿里云打造离线下载服务器?
  2. 手机喇叭积灰,一段音波就能清理干净
  3. VMware10安装CentOS6.7
  4. Robocode 超级机器人 “波”统计瞄准算法
  5. npy文件转为csv文件
  6. c语言编程科学计数法,c语言编程 科学计数法
  7. 客户管理软件系统源码
  8. Vue项目中安装axios
  9. 路径跟踪之LQR控制算法
  10. 人口增长模型参数估计matlab,人口增长模型及实现(附MATLAB代码)