fluid.initializer
Bilinear
BilinearInitializer
的别名## BilinearInitializer
SourceEnglish
该初始化函数用于转置卷积函数,进行上采样。用户通过任意整型因子放大shape为(B,C,H,W)的特征图。用法如下:
代码示例:
- factor = 2
wattr = ParamAttr(learning_rate=0., regularizer=L2Decay(0.),
initializer=Bilinear())
conv_up = fluid.layers.conv2d_transpose(
input,
num_filters=C,
output_size=None,
filter_size=2 factor - factor % 2,
padding=ceil((factor - 1) / 2.),
stride=factor,
groups=C,
param_attr=w_attr,
bias_attr=False)
num_filters = C和groups = C 表示这是按通道转置的卷积函数。滤波器shape为(C,1,K,K),K为filter_size。该初始化函数为滤波器的每个通道设置(K,K)插值核。输出特征图的最终输出shape为(B,C,factorH,factor*W)。注意学习率和权重衰减设为0,以便在训练过程中双线性插值的系数值保持不变
## Constant
SourceEnglish
ConstantInitializer
的别名## ConstantInitializer
SourceEnglish
常量初始器
- 参数:
- value (float) - 用常量初始化变量
代码示例
- fc = fluid.layers.fc(input=x, size=10,
paramattr=fluid.initializer.Constant(value=2.0))
## force_init_on_cpu
SourceEnglish
标志位,是否强制在CPU上进行变量初始化。
返回:状态,是否应强制在CPU上强制进行变量初始化
返回类型:bool
代码示例:
- if force_init_on_cpu():
create_op('force_cpu': force_init_on_cpu())
## init_on_cpu
SourceEnglish
强制变量在 cpu 上初始化。 代码示例
- with initon_cpu():
step = layers.create_global_var()
## MSRA
SourceEnglish
MSRAInitializer
的别名## MSRAInitializer
SourceEnglish
实现MSRA初始化(a.k.a. Kaiming初始化)
该类实现权重初始化方法,方法来自Kaiming He,Xiangyu Zhang,Shaoqing Ren 和 Jian Sun所写的论文: Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification 。这是一个鲁棒性特别强的初始化方法,并且适应了非线性激活函数(rectifier nonlinearities)。
在均匀分布中,范围为[-x,x],其中:
[x = \sqrt{\frac{6.0}{fan_in}}]
在正态分布中,均值为0,标准差为:
[\sqrt{\frac{2.0}{fan_in}}]
- 参数:
- uniform (bool) - 是否用均匀分布或正态分布
- fan_in (float) - MSRAInitializer的fan_in。如果为None,fan_in沿伸自变量
- seed* (int) - 随机种子
注解
在大多数情况下推荐设置fan_in为None
代码示例:
- fc = fluid.layers.fc(
- input=queries, size=10,
- param_attr=fluid.initializer.MSRA(uniform=False))
Normal
NormalInitializer
的别名## NormalInitializer
SourceEnglish
随机正态(高斯)分布初始化器
- 参数:
- loc (float) - 正态分布的平均值
- scale (float) - 正态分布的标准差
- seed (int) - 随机种子
代码示例
- fc = fluid.layers.fc(input=x, size=10,
paramattr=fluid.initializer.Normal(loc=0.0, scale=2.0)
## NumpyArrayInitializer
SourceEnglish
使用Numpy型数组来初始化参数变量。
- 参数:
- value (numpy) - 用于初始化变量的一个Numpy型数组。
代码示例
- fc = fluid.layers.fc(input=x, size=10,
paramattr=fluid.initializer.NumpyArrayInitializer(numpy.array([1,2])))
## TruncatedNormal
SourceEnglish
TruncatedNormalInitializer
的别名## TruncatedNormalInitializer
SourceEnglish
Random Truncated Normal(高斯)分布初始化器
- 参数:
- loc (float) - 正态分布的平均值
- scale (float) - 正态分布的标准差
- seed (int) - 随机种子
代码示例
- fc = fluid.layers.fc(input=x, size=10,
paramattr=fluid.initializer.TruncatedNormal(loc=0.0, scale=2.0))
## Uniform
SourceEnglish
UniformInitializer
的别名## UniformInitializer
SourceEnglish
随机均匀分布初始化器
- 参数:
- low (float) - 下界
- high (float) - 上界
- seed (int) - 随机种子
代码示例
- fc = fluid.layers.fc(input=x, size=10,
paramattr=fluid.initializer.Uniform(low=-0.5, high=0.5))
## Xavier
SourceEnglish
XavierInitializer
的别名## XavierInitializer
SourceEnglish
该类实现Xavier权重初始化方法( Xavier weight initializer),Xavier权重初始化方法出自Xavier Glorot和Yoshua Bengio的论文 Understanding the difficulty of training deep feedforward neural networks
该初始化函数用于保持所有层的梯度尺度几乎一致。
在均匀分布的情况下,取值范围为[-x,x],其中:
[x = \sqrt{\frac{6.0}{fan_in+fan_out}}]
正态分布的情况下,均值为0,标准差为:
[x = \sqrt{\frac{2.0}{fan_in+fan_out}}]
- 参数:
- uniform (bool) - 是否用均匀分布或者正态分布
- fan_in (float) - 用于Xavier初始化的fan_in。如果为None,fan_in沿伸自变量
- fan_out (float) - 用于Xavier初始化的fan_out。如果为None,fan_out沿伸自变量
- seed (int) - 随机种子
注解
在大多数情况下推荐将fan_in和fan_out设置为None
代码示例:
- fc = fluid.layers.fc(
- input=queries, size=10,
- param_attr=fluid.initializer.Xavier(uniform=False))
原文: http://paddlepaddle.org/documentation/docs/zh/1.3/api_cn/initializer_cn.html
当前内容版权归 PaddlePaddle官网 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 PaddlePaddle官网 .