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],其中:
正态分布的情况下,均值为0,标准差为:
参数
- uniform (bool) - 是否用均匀分布,默认为True。如果为False,则使用正态分布。
- fan_in (float) - 当前网络层的输入神经元个数。如果为None,则从变量中推断,默认为None。
- fan_out (float) - 当前网络层的输出神经元个数。如果为None,则从变量中推断,默认为None。
- seed (int) - 随机种子
注解
在大多数情况下推荐将fan_in和fan_out设置为None
代码示例
import paddle.fluid as fluid
queries = fluid.layers.data(name='x', shape=[1], dtype='float32')
fc = fluid.layers.fc(
input=queries, size=10,
param_attr=fluid.initializer.Xavier(uniform=False))