目录
相关issue https://github.com/PaddlePaddle/Paddle/issues/1167
paddle_pr/proto/TrainerConfig.proto中有关于momentum各个参数的解释
学习率太大可能会出现floating point exception,可以调小一个数量级,或者使用梯度clipping
Q: 日志中打出来的是 训练误差还是测试误差?
A: 训练的时候会打印训练误差,测试的时候会打印测试误差
虽然损失函数里有正则,但在神经网络真正实现时,正则和损失函数是分开的两个部分。并不需要显示的将正则定义在损失函数里面。
全局化的正则(会加给每一个参数),设置方法如下: https://github.com/PaddlePaddle/models/blob/develop/mt_with_external_memory/train.py#L73
如果想针对性的调整某一个参数的正则,每个可学习的参数都可以通过 param_attr 关键字来设置一些如初始化 mead、std、正则系数等关键参数,调用方式可以参考这个例子:https://github.com/PaddlePaddle/models/blob/develop/text_classification/network_conf.py#L46
如果在optimizer中设置了全局正则系数,下面调用可以取消对fc层参数的正则,当然,也可以设置一个非0值,调整这个参数的正则系数。
fc = paddle.layer.fc(
input=input_layer,
size=128,
param_attr=paddle.attr.Param(decay_rate=0))
正交初始化:
W = np.random.randn(ndim, ndim)
u, s, v = np.linalg.svd(W)
求正交要 svd ,可以用numpy算好之后,用u做初始化