Skip to content

Latest commit

 

History

History
23 lines (9 loc) · 831 Bytes

File metadata and controls

23 lines (9 loc) · 831 Bytes

ReLU6是在mobilenet网络中被提出来的,包括后面的swish(x sigmoid(x))也是用relu6近似实现的。

为什么采用ReLU6而非ReLU?

在移动端设备中,通常用低精度计算(float16),表示范围有限,而relu的范围是0到+inf,对于特别大的数,可能会超过低精度浮点数的表示范围,因此需要进行截断。实际上,ReLU后面的数字决定了需要保留多少比特才是最优解,在mobilenet中选择了将该截断值设置为6。

ReLU6和hard sigmoid的关系?

ReLU6进行简单变换,即可成为hard sigmoid:

$HardSigmoid(x) = ReLU6(x+3)/6$

ReLU6和swish的关系?

由于ReLU6可以转为hard sigmoid,因此可以代替swish中的sigmoid,用来近似swish:

$HardSwish(x) = x HardSigmoid(x) = x \frac{ReLU6(X+3)}{6}$