【pytorch基础】ReLU6

ReLU6(x)=min(max(0,x),6)

ReLU6可以抑制ReLU的最大值,当x>6时,其导数也是0;

目的:

主要是为了在移动端float16的低精度的时候,也能有很好的数值分辨率,如果对ReLu的输出值不加限制,那么输出范围就是0到正无穷,而低精度的float16无法精确描述其数值,带来精度损失。

为什么是6呢?

普通relu, y=max(0, x), 相当于无限多个bernoulli分布,即无限多个骰子

relu6, y= min(max(0,x), 6), 相当于有六个bernoulli分布,即6个硬币,同时抛出正面,这样鼓励网络学习到稀疏特征。

网络里面每一个输出n,相当于n个bernoulli分布的叠加。

通过实验发现,用6,效果比较好。所以选用了6

参考

1. ??ReLU6??;

2.??Why the 6 in relu6???

人的不幸缘于欲望,所以知足者长乐。

【pytorch基础】ReLU6

相关文章:

你感兴趣的文章:

标签云: