模型参数
- 初始化方式
- 正则化
- 梯度剪切
- 模型平均
fluid通过设置 的 initializer
属性为单个parameter设置初始化方式。 示例如下:
以下为fluid支持的初始化方式:
线性初始化方法。用该方法初始化的反卷积操作可当做线性插值操作使用。
可用别名:Bilinear
API请参考:BilinearInitializer
2. ConstantInitializer
常数初始化方式,将parameter初始化为指定的数值。
可用别名:Constant
API请参考:ConstantInitializer
3. MSRAInitializer
该初始化方法参考论文: https://arxiv.org/abs/1502.01852
可用别名:MSRA
API请参考:
随机高斯分布初始化方法。
API请参考:NormalInitializer
5. TruncatedNormalInitializer
随机截断高斯分布初始化方法。
可用别名:TruncatedNormal
API请参考:TruncatedNormalInitializer
6. UniformInitializer
随机均匀分布初始化方式。
可用别名:Uniform
API请参考:UniformInitializer
该初始化方式参考论文:
可用别名:Xavier
API请参考:XavierInitializer
fluid通过设置 ParamAttr
的 regularizer
属性为单个parameter设置正则化。
以下为fluid支持的正则化方式:
- (别名:L1Decay)
以下为fluid支持的clipping方式:
1. ErrorClipByValue
用来将一个tensor的值clipping到指定范围。
API请参考:
2. GradientClipByGlobalNorm
用来将多个Tensor的global-norm限制在 clip_norm
以内。
API请参考:
将Tensor的l2-norm限制在 max_norm
以内。如果Tensor的l2-norm超过了 , 会将计算出一个 scale
,该Tensor的所有值乘上计算出来的 scale
.
API请参考:GradientClipByNorm
4. GradientClipByValue
将parameter对应的gradient的值限制在[min, max]范围内。
API请参考:GradientClipByValue
fluid通过 ParamAttr
的 属性设置单个parameter是否进行平均优化。 示例如下:
在miniBatch训练过程中,每个batch过后,都会更新一次parameters,模型平均做的就是平均最近k次更新产生的parameters。
平均后的parameters只是被用来进行测试和预测,其并不参与实际的训练过程。