XavierInitializer

  • class paddle.fluid.initializer.XavierInitializer(uniform=True, fan_in=None, fan_out=None, seed=0)[源代码]

该类实现Xavier权重初始化方法( Xavier weight initializer),Xavier权重初始化方法出自Xavier Glorot和Yoshua Bengio的论文 Understanding the difficulty of training deep feedforward neural networks

该初始化函数用于保持所有层的梯度尺度几乎一致。

在均匀分布的情况下,取值范围为[-x,x],其中:

XavierInitializer - 图1

正态分布的情况下,均值为0,标准差为:

XavierInitializer - 图2

  • 参数:
    • uniform (bool) - 是否用均匀分布,默认为True。如果为False,则使用正态分布。
    • fan_in (float) - 当前网络层的输入神经元个数。如果为None,则从变量中推断,默认为None。
    • fan_out (float) - 当前网络层的输出神经元个数。如果为None,则从变量中推断,默认为None。
    • seed (int) - 随机种子

注解

在大多数情况下推荐将fan_in和fan_out设置为None

代码示例

  1. import paddle.fluid as fluid
  2. queries = fluid.layers.data(name='x', shape=[1], dtype='float32')
  3. fc = fluid.layers.fc(
  4. input=queries, size=10,
  5. param_attr=fluid.initializer.Xavier(uniform=False))