Tensorflow He带有跳过连接的图层的初始化器

时间:2019-09-19 21:31:04

标签: python tensorflow tf.keras

在张量流中he initializer已实现here。我的网络中有附加的跳过连接(如残留网络)。因此,如果网络要保持单位差异,则fan_in应该相应地进行更改。 tensorflow初始值设定项会解决这个问题还是我需要为此编写自己的初始值设定项?

1 个答案:

答案 0 :(得分:0)

通常,在具有跳过连接的Resnet中,我们将使用He Initializer来解决您提到的问题。

但是,如果要确保保持差异,可以使用Glorot Initialization,其开发目的与以下所述相同。

Glorot Bengio 提出了一种显着缓解压力的方法 不稳定梯度问题。他们指出,我们需要信号 双向正确流动:制造时向前流动 预测,以及反向传播梯度时的预测。 我们既不希望信号消失,也不希望它爆炸并 饱和。为了使信号正确流动,作者认为我们需要 每层输出的方差等于其每一层的方差 输入2,我们需要梯度在前后具有相等的方差 沿相反方向流过一层(请检查纸张 如果您对数学细节感兴趣)。实际上不是 除非层具有相等数量的输入,否则可以保证两者 和神经元(这些数字称为该层的扇入和扇出), 但是 Glorot Bengio 提出了一个很好的折衷方案,事实证明, 在实践中效果很好:每一层的连接权重必须为 随机初始化。

由于初始化参数取决于层中的激活函数,因此建议使用下表针对不同的激活函数进行初始化。

enter image description here

我希望这能回答您的问题,快乐学习!