HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(2) --- 模型生成及模型仿真(实例分析)

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

#PS:这个只是 《 我自己 》理解,如果和你的

#原则相冲突,请谅解,勿喷

背景

本文建立在上文环境配置的基础上继续。(上文链接:https://blog.csdn.net/u011728480/article/details/91125581)

本文将会以一个实例来进行分析。同时本文的教程都是建立在《HiSVP 开发指南.pdf》基础上的。

NNIE 模型生成

NNIE 新建工程

File 新建NNIE工程,选择MinGW GCC 空工程即可。
在这里插入图片描述

NNIE Mapper 配置文件建立

File 新建nnie mapper配置文件,如下图:
在这里插入图片描述
双击这个mapper文件,你可以进入配置页面,如下图,其相关的参数和选项要按照《HiSVP 开发指南.pdf》的NNIE mapper配置文件参数详解。
在这里插入图片描述
这里有几个地方要注意一下:
is_simulation 是生成功能仿真或者指令仿真模型。指令仿真模型就是最终到板子上的模型。
batch_num 对于forward来说,一般都是一张图像,这里选1就行了。
sparse_rate 先0不影响正常输出。
data_type 这里你一定要去看文档说明,弄清楚你的网络需要输入的是什么数据类型,有些在网络里面做了归一化,这里选U8,如果网络前面做归一化,这里就要选S32,其他类型,看文档。

NNIE 模型生成

在把NNIE Mapper配置配好了后,点击如下图的按钮即可生成对应的wk文件。
在这里插入图片描述
我这里就根据is_simulation生成了两种模型,功能仿真模型输出内容多。指令仿真模型输出基本保持和板子上是一致的。
在这里插入图片描述

NNIE 模型仿真工程搭建

这里,我们就不要做重复造轮子的工作,直接导入官方sample_simulator,然后在其基础上魔改就行了。
在这里插入图片描述

魔改切入点

在src目录,打开main.cpp,简单分析一波,根据我的网络特点,直接选择分类网络例子(svpsampleclassification.cpp),复制为我的cpp和hpp。
在这里插入图片描述
其核心调用在仿真里面就两个函数:
HI_MPI_SVP_NNIE_Forward 网络forward
HI_MPI_SVP_NNIE_Query forward状态查询

其余的都是在准备数据和查看数据。这里你可以参考svpsampleclassification.cpp进行简化魔改即可。
需要注意的是:
HI_MPI_SVP_NNIE_Forward 的api参考文档中,有关于输入和输出数据的规格说明,别弄错了。

魔改好了,直接打印出最后一层的输出。

每一层的数据保存

这种方法适用于后续的向量对比,用于查看你生成的模型对不对。在sim_out的目录下有一个nnie_sim.ini配置文件,里面可以设置一些不错的参数。
在这里插入图片描述
双击后,可以界面设置:
在这里插入图片描述

这里必须勾上第一个,第二个建议勾上,这样跑的快点。第一个勾上后,会输出每一层的输出。
然后运行你魔改的程序,在sim_out下会出现如下图的内容(我这里我两种模型的仿真都做过了,所以有两种每一层网络的输出):
在这里插入图片描述

网络标准输出

点这个,配置参数,然后输出你的caffe模型的每一层数据,用作后续的向量分析。
在这里插入图片描述
在这里插入图片描述
这里没什么注意的,自己配置好相关的内容即可。

这里执行后会在output dir 输出每一层caffe模型的forward输出
如下图:
在这里插入图片描述

向量对比

向量对比有什么作用,相比经常接触这方面的人会有感受,就是指你的模型输出对不对。比如:
caffe 的输出,nnie的输出到底能否对上,hisi提供了这样的一个工具。
在这里插入图片描述
一个选择caffe输出,一个选择仿真输出。对比即可。双击可以查看每一层的所有输出数据,这里我就直接看最后一层。
在这里插入图片描述
在这里插入图片描述
从最后一层的数据对比来看,基本偏差不大,因为后续还要继续对数据进行处理。这样的话,就证明了我的nnie模型至少现在看来没什么问题了。

注意事项

如果你的输出和标准caffe输出差的非常远,有70%的可能性是你输入数据不一致导致的,你要和算法他们详细沟通,并打印输入数据,经过实际对比,看看哪里有什么问题。

不一致的原因很多,一般来说就是图像通道对不上,预处理不一致等等。

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

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

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

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 40
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值