赞
踩
ReLU6网络层
我们在使用MobileNet网路时,会发现该网络层中有ReLU6的激活函数
那你们想没有想过,为什么用ReLU6,直接用ReLU不香么?
我们先了解ReLU6激活函数是如何define的
对于relu,采用:y = max(0, x)定义, 即 特征值小于0的即为0, 特征值大于0的不变,相当于x个bernoulli分布
对于relu6, 采用:y = min((max(0, x)), 6)定义,即在relu的基础上,限定了特征值的最大值为6,即为6个bernoulli分布
从定义上不难看出,relu6比relu减少了多个bernoulli分布
从作者的观点,relu6主要为了:This is useful in making the networks ready for fixed-point inference.
也就是说,relu6的诞生其目的主要是为了定点的深度网络模型服务
其中为什么选择6呢?8不行么?
作者又说了:the value 6 that fits best in 8 bits, which probably is the most common ust-case.
也就说明了,对于数值6,目前对对于定点8bit是最适合的。
我们再谈谈MobileNets,
MobileNets, 是谷歌提出,专注于在移动设备上的轻量级神经网络。
因此,对于一些移动端设备,我们为了提升网络的在移动端(npu之类的),我们采用定点进行推理(可以了解网络加速技术之量化)
这也就说明了,为什么MobileNets中有relu6了。
按照我的理解
限制为6,主要是在移动端int8的低精度的时候,为了也能让模型有很好的特征提取
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。