hikey970学习-003:DDK用户手册学习《Huawei HiAI DDK User Manual 》(1)
看了华为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)相关推荐
- APP进阶实战:最快10分钟接入HUAWEI HiAI有感
华为HiAI是面向移动终端的AI计算平台,了解HUAWEI HiAI的平台功能.优势.技术以及HUAWEI HiAI能为APP带来的价值,为开发者提供人工智能计算库及API,助力开发者便捷高效地编写在 ...
- HUAWEI HiAI常见FAQ小贴士
8月7日,HUAWEI HiAI系统架构师在CSDN平台为广大开发者进行了以"APP进阶实战:最快10分钟接入HUAWEI HiAI"主题的直播,迎来600多名开发者在线上观看. ...
- 如何成为快手尬舞王?HUAWEI HiAI了解一下!
左手!右手!抱一抱!扭一扭! 快手短视频,红遍东西南北中, 给大家的生活增添了不少乐趣. 有了人体姿态识别的魔法表情, 不会跳舞的也都可以跟着跳一跳. 从村口朴实的阿姨,到写字楼里端庄的白领, 在人体 ...
- STM32:从菜鸟到牛人就是如此简单!为了学习单片机而去学习单片机的思路是不对的
来源于知乎,版权归原作者所有 为了学习单片机而去学习单片机的思路是不对的 你问: 如何系统地入门学习stm32? 本身就是一个错误的问题 假如你会使用8051 会写C语言 那么STM32本身并不需要刻 ...
- 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)
长篇博文记录学习流程不容易,请关注.转发.点赞.评论,谢谢! 上一篇文章:Docker学习笔记与深度学习环境的搭建和部署(一) 文章末尾附加nvidia455.23.cuda11.1.cudnn8.0 ...
- 端侧AI进化论:HUAWEI HiAI Foundation的奇妙旅程
从2017年开始,华为将端侧AI算力的概念带入了产业界.彼时,还有很多人讨论端侧AI计算是否有必要,是否具备前景等等问题.一转眼四年过去了,端侧的AI处理能力已经成为每家芯片厂商.移动终端厂商的必备能 ...
- 二元学习法3.0:三把学习大剑,打通学习的底层密码_学习方法
单纯靠机会赚钱的时代已经过去,未来是认知赚钱的时代. 前两天还跟朋友聊到这个话题,未来的机会将会不断涌现,人工智能.5G.万物互联.虚拟现实-- 而这些东西,都跟知识挂钩.以前那种胆大就能挣钱,站在风 ...
- Java学习路线图,如何学习Java事半功倍?
作为一个初学者想掌握Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你学习这事本来 ...
- 吴恩达深度学习ppt_【深度学习】吴恩达谈深度学习:数据科学家需要知道这些...
数据科学家需要什么深度学习知识?吴恩达 (Andrew Ng)用机器看图说话,机器问答等实例告诉大家.本文是吴恩达在2015年12月在ExtractConf上的演讲摘录,含20分钟视频与ppt. An ...
- c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...
[摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...
最新文章
- static和global的区别
- 论文 | 图像和谐化公开数据集:让前景和背景更“般配”
- c++17(26)-数组、二维数组的指针、指向数组的指针、指向数组的指针的指针
- js错误:对象不支持此属性或方法
- IOS15使用Masonry和自动计算Cell的高度
- 学习笔记(04):Python网络编程并发编程-什么是socket
- pugixml解析Word
- android input出现一个多余文本窗口 解决办法
- easyui表单提交,后台获取不到值
- Django-urls路由系统
- ubuntu18 mysql5.6源码_Ubuntu 18.04 使用Systemd管理MySQL 5.6
- ubuntu 18.04桌面版启动错误: Unable to mount root fs on unknown-block(0,0)
- pyppeteer-比 selenium 更高效的爬虫利器
- jQuery遮罩插件 jquery.blockUI.js
- 为什么 BI 软件都搞不定关联分析?带你分析分析
- java error 常见_javah 常见错误
- python计算小数点后有几位_小学数学有哪些数学计算技巧?
- 我的消费记录怎么查看呢?
- HDU 613 Kolakoski
- 工作总结:简明扼要,突出重点