代码之家  ›  专栏  ›  技术社区  ›  Maosi Chen

使用tf。层。SELU激活函数预处理输入的batch_归一化?

  •  1
  • Maosi Chen  · 技术社区  · 7 年前

    SELU激活功能( https://github.com/bioinf-jku/SNNs/blob/master/selu.py )要求归一化输入,使其平均值为0.0,方差为1.0。因此,我试图申请 tf.layers.batch_normalization axis=-1 )以满足该要求。每批原始数据的形状为 [batch_size, 15] ,其中15表示特征数量。下图显示了从 tf。层。batch_归一化

    我应该如何使15个特征都独立归一化(我希望归一化后的每个特征的平均值为0,var为1.0)?

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   Maosi Chen    7 年前

    在阅读了批量归一化的原始论文之后( https://arxiv.org/abs/1502.03167 )和SELU( https://arxiv.org/abs/1706.02515 ),我对他们有了更好的理解:

    1. 固定分布 为了更好的表现力。对于简单的归一化,我们需要将 center scale 参数到 False 呼叫时 tf.layers.batch_normalization

    2. 确保 epsilon tf。层。batch_归一化 )设置为至少比所有输入数据的最低幅值小2个幅值。的默认值 设置为0.001。就我而言,一些功能的值低至1e-6。因此,我不得不改变 至1e-8。

    3. 在将SELU的输入输入输入到模型中之前,必须对其进行归一化。 tf。层。batch_归一化

    推荐文章