PS:要转载请注明出处,本人版权所有。

PS: 这个只是基于《我自己》的理解,

如果和你的原则及想法相冲突,请谅解,勿喷。

前置说明

  本文作为本人csdn blog的主站的备份。(BlogID=084)

  本文发布于 2019-06-07 11:22:00,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=084)

环境说明

  无

背景


  深度学习的爆发期已经到了瓶颈了,为啥这样说,因为没有突破性的理论进展,都是靠着网络更深、更广,算力更强大来做相应的功能。至少在我的世界观里面是这样的,虽然这样的认知可能会有局限性,或者说是错误的。

  现在深度学习的方向已经不是以前的泡沫鼓吹了,而是落地,踏踏实实的把实验室的东西转换为实际对社会有用的东西,这才是深度学习的现在的实际情况。

  要做相关的落地,在大部分应用场景来说,是不能够直接弄台服务器+GPU的方式来做相关的计算的,这样部署维护和成本都是一个很大的问题,现在其实大部分的场景需要的是低成本、小型化。就现在来看,其实就是移动手机平台和其他嵌入式板子平台是一个主流的方向。比如,手机端的:换脸啊、表情啊、化妆啊等等;板卡端的:依托于人脸识别的广告机啊、闸机啊等等。这里面的核心就是要在这些小型设备上做相关的算法运算。

  在这些小型设备上做运算,有一个问题就是算力的问题,这些小型设备功耗低、算力低,很可能就是算法表现比较差。还好,很多大佬在很久以前就考虑到这些问题了,出了很多硬件加速的东西。如:Nvidia的TX TK系列、瑞芯微的RK系列、HiSi的Hi3559,Hi3519,Hi3516系列以及其他的Android手机SOC里面带的相关的NPU等等。

  所以,为了把HiSi平台的相关深度学习硬件加速功能用起来,我们得把HiSi的NNIE利用起来完成这个功能。

NNIE简介


  NNIE是 Neural Network Inference Engine 的 简 称 是 海思 媒体 S oC 中 专门针对神经网

络特别是深度学习卷积神经网络进行加速处理的硬件单元。----- 摘自hisi sdk svp部分《HiSVP开发指南.pdf》

NNIE 工作流程简介


  海思提供了一个NNIE Mapper的工具(Linux , Win都有)。由于NNIE只支持Caffe框架,我们需要的是把Caffe的模型转换为NNIE可以使用的模型。

  在我们转换的时候,需要我们提供一个NNIE转换的配置文件,然后根据配置文件把相关的caffe模型转换为NNIE的模型。然后我们在板子上加载这个模型,调用相关的API就可以完成这个网络的加速计算。

NNIE 环境搭建


  工欲善其事必先利其器。NNIE最开始接触的时候,我觉得贼难受,觉得很难。但是当你把环境配置好了,你就会觉得事半功倍,很舒服。

  以下内容,我都是按照HISI SDK的SVP部分的《HI SVP开发指南.pdf》做的,只是由于时效性的原因,有些内容需要做一定的改变适应才行。

  我这里根据我的摸鱼经验,我建议萌新第一步,先把RuyiStudio配置起来,这里面带了所有和NNIE开发的工具。

RuyiStudio 简介


  以下是RuyiStudio官方介绍:

  RuyiStudio 集成 windows 版 的 NNIE mapper 和 仿真库, 具有 生成 NNIE wk 功能、 仿真NNIE 功能,同时 具有 代码 编辑、编译、调试、执行 功能 、 网络拓扑显示、目标检测画框、 向量 相似度 对比、 调试 定位 信息获取等功能 。

RuyiStudio ----- MinGW安装

  这里我建议选择手动安装,下载MinGW的对应版本,解压到一个无中文路径的目录下。然后下载对应MinGW的msys,解压到MinGW的根目录下。这里直接按照文档给的内容走即可。这一步无明显的坑。

RuyiStudio ----- Python 3.5 与CAFFE安装

  这一步是最坑的一步。所以这步我会一一按照文档介绍说明。

  这一步必须按照手动配置方式,一键脚本配置,我建议有能力的小伙伴使用,纠错有难度。

  所有的内容下载好了 ,开始下一步。

  • 把上面下载的包放到ruyi_env_setup-2.0.28\python35目录下,并全部解压到ruyi_env_setup-2.0.28\python35目录。
  • 把ruyi_env_setup-2.0.28 目录下的caffe.zip 放到ruyi_env_setup-2.0.28\python35\Lib\site-packages下解压。
  • 把opencv_python-3.4.0.12-cp35-cp35m-win_amd64.whl放到ruyi_env_setup-2.0.28\python35\Lib\site-packages ,然后在ruyi_env_setup-2.0.28\python35\Lib\site-packages目录,执行pip install opencv_python-3.4.0.12-cp35-cp35m-win_amd64.whl安装opencv
RuyiStudio-2.0.28.zip 解压运行

  打开RuyiStudio.exe得到如下的界面,常用的几个点就如图所示,至于怎么完成后续工作。请看后续文章。

后记


  无

参考文献


打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)

PS: 请尊重原创,不喜勿喷。

PS: 要转载请注明出处,本人版权所有。

PS: 有问题请留言,看到后我会第一时间回复。

HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(1) --- 环境搭建的更多相关文章

  1. PaaS平台– Google App Engine的开源实现AppScale环境搭建

    搭建好开发环境介绍: 硬件平台:HP Z800 工作站  内存:24GB      硬盘:1TB 虚拟化环境:XenServer 6.2.0 VM1:Ubuntu 12.04 amd64 server ...

  2. [Javascript摸鱼记录] 关于js简单字符删减替换增加插入追加前中后处理

    以前总是怕死js如其名,能让我入坑润不出来,然后最近被迫写点静态html,又要用到数值运算处理, 于是又开启了「好几十个标签栏解决一个问题」的"探索路程",顺便记录一下摸鱼结果希望 ...

  3. (转)The Neural Network Zoo

    转自:http://www.asimovinstitute.org/neural-network-zoo/ THE NEURAL NETWORK ZOO POSTED ON SEPTEMBER 14, ...

  4. 论文笔记之:Progressive Neural Network Google DeepMind

    Progressive Neural Network  Google DeepMind 摘要:学习去解决任务的复杂序列 --- 结合 transfer (迁移),并且避免 catastrophic f ...

  5. 深度神经网络如何看待你,论自拍What a Deep Neural Network thinks about your #selfie

    Convolutional Neural Networks are great: they recognize things, places and people in your personal p ...

  6. Recurrent Neural Network[survey]

    0.引言 我们发现传统的(如前向网络等)非循环的NN都是假设样本之间无依赖关系(至少时间和顺序上是无依赖关系),而许多学习任务却都涉及到处理序列数据,如image captioning,speech ...

  7. (zhuan) Recurrent Neural Network

    Recurrent Neural Network 2016年07月01日  Deep learning  Deep learning 字数:24235   this blog from: http:/ ...

  8. Sony深度学习框架 - Neural Network Console - 教程(1)- 原来深度学习可以如此简单

    “什么情况!?居然不是黑色背景+白色文字的命令行.对,今天要介绍的是一个拥有白嫩的用户界面的深度学习框架.” 人工智能.神经网络.深度学习,这些概念近年已经涌入每个人的生活中,我想很多人早就按捺不住想 ...

  9. Graph Embedding Review:Graph Neural Network(GNN)综述

    作者简介: 吴天龙  香侬科技researcher 公众号(suanfarensheng) 导言 图(graph)是一个非常常用的数据结构,现实世界中很多很多任务可以描述为图问题,比如社交网络,蛋白体 ...

  10. 梳理检测论文-Refinement Neural Network

    Single-Shot Refinement Neural Network for Object Detection 目录 1. motivation 2. RefineDet 解析(Network ...

随机推荐

  1. 使用DoraCloud构建远程办公桌面云

    公司总部在上海.员工分布在各地.部分员工需要远程办公.为了实现远程办公,有几种备选方案. 方案1.在员工的PC上安装向日葵.ToDesk之类的远程工具. 方案2.公司总部提供VPN,员工通过VPN拨号 ...

  2. 素数打表,洛谷P1217 [USACO1.5]回文质数 Prime Palindromes

    这道题的最后一个样例TLE(超时)了,判断素数的条件是 i*i<n 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include ...

  3. PostgreSQL-常用命令汇总

    1.连接到 PostgreSQL 数据库: psql -h 主机名/服务器IP -p 端口号 -U 用户名 -d 数据库名 注意:(1)在服务器上本地登录时,可以使用主机名或者本机IP地址进行登录,但 ...

  4. Python脚本的输入输出

    一.必备知识回顾和补充 1. Hello world回顾 1.输出文本,使用print函数输出文本. 2.让用户输入名字,然后输出带名字的问候语.使用input函数获取用户的输入,使用变量保存输入值. ...

  5. webpack学习笔记(一)安装与试用

    由于初次接触 webpack(官网),对很多方面都不是很理解,在查找部分资料后记录一下自己的见解(本文实践基于webpack4). 1. 个人见解 简单来说,webpack就是js的 打包 工具.个人 ...

  6. CF1433E Two Round Dances 题解

    题目传送门 前置知识 圆排列 解法 \(\dfrac{Q_{n}^{\frac{n}{2}}Q_{\frac{n}{2}}^{\frac{n}{2}}}{A_{2}^{2}}\) 即为所求. 同时因为 ...

  7. CentOS 7.3 源码安装squid 4.12 及安装过程遇到的一些问题

    一.源码安装squid 4.12 1.下载squid-4.12源码包 wget http://www.squid-cache.org/Versions/v4/squid-4.12.tar.gz tar ...

  8. 如何获取oracle dbid

    1.查询v$database获得 由于DBID在控制文件和数据文件中都存在记录,所以如果能够mount数据库就可以查询v$database视图获得.  SQL> alter database m ...

  9. oracle exp/imp命令使用parfile实现参数文件调用

    优先使用数据泵(expdp/impdp)方式,更高效,问题少. 关于exp/imp工具的使用请参考我的另一篇文章: https://blog.csdn.net/IndexMan/article/det ...

  10. spring boot与junit集成测试

    先创建一个REST接口 package com.laoxu.gamedog.controller; import org.springframework.web.bind.annotation.Req ...