参考TF的APIhttps://tensorflow.google.cn/versions/r2.1/api_docs/python/tf/nn/scale_regularization_loss
643ylb081#
Paddle现在给参数增加正则项可以通过ParamAttr完成,具体可参考文档https://www.paddlepaddle.org.cn/documentation/docs/zh/1.5/api_cn/fluid_cn.html#paramattr
wlsrxk512#
感谢回复!我之前确实有看错用法,在定义网络层误以为bias_attr=None,这项是正则化了。将fluid.regularizer.L2Decay(regularization_coeff=1e-4)传给了bias_attr
def __init__(self, num_channels, num_filters, filter_size, stride=1, padding=0, dilation=1, groups=None, param_attr=None, bias_attr=None, use_cudnn=True, act=None, dtype='float32'):
问题1:那是不是在优化器中,将regularization=None,设置成fluid.regularizer.L2Decay(regularization_coeff=1e-4)就是在所有的网络层中添加正则了呢?在TF中对conv2和dense不同操作都是单独设置正则的问题2:这样加正则后网络反向传播计算所得的loss是否就包含正则化对loss的影响了,就不需要像TF那样再对正则化项的loss进行处理了,类似pytorch的优化器的用法么?
2条答案
按热度按时间643ylb081#
Paddle现在给参数增加正则项可以通过ParamAttr完成,具体可参考文档https://www.paddlepaddle.org.cn/documentation/docs/zh/1.5/api_cn/fluid_cn.html#paramattr
wlsrxk512#
感谢回复!
我之前确实有看错用法,在定义网络层误以为bias_attr=None,这项是正则化了。将fluid.regularizer.L2Decay(regularization_coeff=1e-4)传给了bias_attr
问题1:那是不是在优化器中,将regularization=None,设置成fluid.regularizer.L2Decay(regularization_coeff=1e-4)就是在所有的网络层中添加正则了呢?在TF中对conv2和dense不同操作都是单独设置正则的
问题2:这样加正则后网络反向传播计算所得的loss是否就包含正则化对loss的影响了,就不需要像TF那样再对正则化项的loss进行处理了,类似pytorch的优化器的用法么?