海思Hi3519A SVP从入门到精通
2802 打赏
在学了在学了! 2020-10-13 12:00:00

1. NNIE介绍

NNIE 是 Neural Network Inference Engine 的简称,是海思媒体 SoC 中专门针对神经网络特别是深度学习卷积神经网络进行加速处理的硬件单元,支持现有大部分的公开网络,如 Alexnet、VGG16、Googlenet、Resnet18、Resnet50 等分类网络,Faster R- CNN、YOLO、SSD、RFCN 等检测网络,以及 SegNet、FCN 等场景分割网络。

目前 NNIE 配套软件及工具链仅支持以 Caffe 框架,使用其他框架的网络模型需要转化为 Caffe 框架下的模型。

2. 工具链介绍

SVP NNIE 在 HiSVP_PC_Vx.x.x.x.rar 组件包中,提供如下的工具链:

nnie_mapper(tool\nnie\linux\mapper 目录):简称 mapper,该工具将用户开通过开源深度学习框架训练得到的模型转化成在 Hi35xx 芯片上或者在仿真库中可以加载的数据指令文件(文件后缀为 wk,后文中提到的 wk 文件即由该工具生成)。

仿真库(software\x64 目录):模拟 NNIE 的硬件执行和软件接口调用,在“相同的输入”下仿真库与硬件得到相同的结果。仿真库可以使用户脱离硬件在 PC 环境下仿真,且便于调试,有助于用户提前快速开发算法原型。仿真库有基于 Visual Studio 和 MinGW 版本,后者集成在 RuyiStudio 中。

仿真 Sample 工程(software\sample_simulator 目录):,包含仿真 sample 源代码供开发者学习参考,支持 Visual Studio 或 RuyiStudio 环境运行。

模型包(software\data):包含若干 sample 中用到的网络的 caffe 模型文件及对应的 NNIE mapper 配置文件、wk 文件、图像文件等。

Windows 版 IDE(tool\nnie\windows 目录)工具 RuyiStudio,集成 Windows 版的 NNIE mapper 和仿真库,用户可以将仿真 Sample 工程导入运行、调试;IDE 还集 成了代码编辑、编译、调试、执行、画框、相似度比对等功能,具体参考 “RuyiStudio 工具使用指南”章节。

3. 开发流程

以 Caffe 框架上训练的模型为例,NNIE 的开发流程如图所示。在 Caffe 上训练、 使用 NNIE 的 mapper 工具转化都是离线的。通过设置不同的模式,mapper 将 *.caffemodel 转化成在仿真器、仿真库或板端上可加载执行的数据指令文件。一般在开发前期,用户可使用仿真器对训练出来的模型进行精度、性能、带宽进行初步评估, 符合用户预期后再使用仿真库进行完整功能的仿真,最后将程序移植到板端。

4. 网络层分类

一个网络的层可分为如下的 3 类:

标准层:NNIE 支持的 Caffe 标准层,比如 Convolution,Pooling 层等;

扩展层:NNIE 支持的公开但非 Caffe 标准层,分为 2 种:

− 一种是基于 Caffe 框架进行自定义扩展的层,比如 Faster RCNN 中的 ROIPooling 层、SSD 中 Normalize 层、RFCN 中的 PSROIPooling 层,SegNet 中 的 UpSample 层等;

− 另外一种是来源于其他深度学习框架的自定义层,比如 YOLOv2 中 Passthrough 层等;

Non-support 层:NNIE 不支持的层,比如 Caffe 中专用于 Tranning 的层、其他非 Caffe 框架中的一些层或者用户自定义的私有层等。

5. 扩展层规则

Faster RCNN、SSD、RFCN 和 SegNet 等网络都包含了一些原始 Caffe 中没有定义的层 结构,如 ROIPooling、Normalize、PSROI Pooling 和 Upsample 等。NNIE 的 mapper 目 前仅支持 Caffe 框架,且以 Caffe-1.0 为基础。为了使 mapper 能支持这些网络,需要对 原始的 Caffe 进行扩展。 原文链接:https://blog.csdn.net/ywcpig/article/details/85260752?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159667967619724811855428%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159667967619724811855428&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v3-2-85260752.pc_ecpm_v3_pc_rank_v3&utm_term=%E6%B5%B7%E6%80%9DHi3519A+SVP%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A&spm=1018.2118.3001.4187

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
评论
0个
时间排序
内容存在敏感词
    0 条记录 第 0 /
    相关专栏
    打赏作者
    易百纳技术社区
    在学了在学了!
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    活动规则
    • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
    • 2.发布在平台的专栏需为原创技术专栏,且社区作为首次发布的平台,在其他平台发布需注明为转载
    • 3.周任务中的专栏需要达到一定质量才会被计入完成总数中。具体以平台审核为准,如有疑问,可联系社区客服(ebainacs)。
    • 4.专栏/资料的任务以审核通过的篇数为准,每个任务数量不做累计。
    • 5.任务完成后,现金奖励直接打款到微信账户EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换。
    易百纳技术社区
    升级提醒
    升级

    恭喜您的社区称号由 升级为 “社区游民”

    同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

    升级提醒
    易百纳技术社区