海思开发:relu、relu6 在量化前后的精度变化及原因思考

一、前言

以前部署 HopeNet 的时候,发现了relu6与relu的差异。具体就是 relu 模型量化后精度下降 14%,relu6 模型量化(指量化前直接替换成relu,再做量化)后精度下降 2.5%。这两个模型除了 backbone、激活函数不一样,其他都一样。所以 relu6 可以减少量化精度损失?因为上面两个模型backbone不一样,所以考虑再进行一个条件更严格的对比实验。

二、实验

特意选了 MobileNet v2,它的激活函数刚好是 relu6,测试数据集类别数是 2,数据集大小为正负类各 500个,精度就是分类的准确率,然后还给每个类别计算了类别精度。我们训练两款模型 MobileNet v2-relu 和 MobileNet v2-relu6 ,它们除了激活函数不同,其余都一样。pytorch 下面训练、测试,因为我的 caffe 不支持 relu6。rgb图片转为bgr格式的图片demo在这里
1. pytoch 推理结果如下:

模型 MobileNet v2-relu
总精度 97.9%
0 类别精度 97.2%
1 类别精度 98.6%
模型 MobileNet v2-relu6
总精度 97.6%
0 类别精度 97.6%
1 类别精度 97.6%

2. 海思 nnie 推理结果

模型 MobileNet v2-relu
总精度 97.7%
0 类别精度 97.0%
1 类别精度 98.4%
模型 MobileNet v2-relu6
总精度 97.8%
0 类别精度 97.6%
1 类别精度 98.0%

注:海思不支持 relu6(勘正一下,后来我在海思上部署relu6成功,相关博客),我是 pytorch 转 caffe 时,直接用 relu 替换的。
由上面数据可见,虽然 MobileNet v2-relu 精度损失不大,但是 relu6 对减少量化精度损失还是有着积极作用。

三、 后言

感觉差距不是很明显,说服力不是很强,考虑以后再做些实验,提高说服力。

四、原因思考

自从发现这个问题而来,就一直在思考背后的原因,虽然该结论还没有得到多个案例的支持,但还是想简单探讨一下,各位老哥看看就好,说的不好可以指出来,我进行修改,谢谢!
一开始思考很久,一直不得门路,后来看量化相关的技术博客时,提到关于权值量化(量化相关博客,这个博客更方便新手学习),想到会不会是:relu 导致权值范围相差过大,而使用 relu6 则缓解了这一现象
所以下面有两个问题需要讨论:
1. 为什么 relu6 能缓解权值相差过大的情况?
2. 为什么权值相差过大会使得量化后精度下降?

先说第一个问题,请出链式法则,
tensor流程图
在这里插入图片描述
上图是 简单的 tensor 流程图,下图是 relu6 的图。
∂ l o s s ∂ w = ∂ l o s s ∂ y ∗ ∂ y ∂ B ∗ ∂ B ∂ w = ∂ l o s s ∂ y ∗ ∂ y ∂ B ∗ A \frac{ {\partial loss}}{ {\partial w}} = \frac{ {\partial loss

  • 13
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
海思的ipd开发流程是指海思公司(华为海思半导体有限公司)在开发集成电路产品时所采取的一系列工序和方法。 首先,海思的ipd开发流程包括对芯片功能和性能需求的分析和定义。这一阶段的主要目的是明确产品需求和目标,确定芯片的功能与性能要求。 接下来,海思进行体系结构设计。这包括整体芯片的结构设计、功能划分与定位,以及芯片内部各个功能模块的设计。其中,关键是根据功能需求设计出合理且高效的体系结构,以满足产品性能要求。 在体系结构设计完成后,海思进行详细设计。这一阶段主要是对芯片各个模块的具体设计和优化,包括电路设计、布局布线等。通过这些设计和优化,确保芯片能够满足产品需求,并提高电路的性能和可靠性。 然后,海思进行芯片的验证与测试。这一阶段主要是对已设计的芯片进行各项功能验证和性能测试,确保芯片工作正常,并符合需求。同时,也对芯片进行故障分析和修复,以确保芯片的稳定性和可靠性。 最后,海思进行芯片的制造和封装。在这一阶段,海思将已验证的芯片进行批量生产和封装,以满足市场需求,并确保产品的品质和稳定性。 总之,海思的ipd开发流程包括需求分析、体系结构设计、详细设计、验证与测试以及制造和封装等多个环节。这一流程的目的是确保产品的功能与性能要求得以满足,同时提高产品的质量和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值