首页 炼丹房 帖子详情
分布式训练中采用学习率衰减错误
收藏
快速回复
炼丹房 其他新手上路 732 1
分布式训练中采用学习率衰减错误
收藏
快速回复
炼丹房 其他新手上路 732 1

错误描述:

File "/opt/_internal/cpython-3.7.0/lib/python3.7/site-packages/paddle/fluid/dygraph/base.py", line 277, in __impl__
return func(*args, **kwargs)
File "/opt/_internal/cpython-3.7.0/lib/python3.7/site-packages/paddle/fluid/optimizer.py", line 838, in minimize
loss, startup_program=startup_program, params_grads=params_grads)
File "/opt/_internal/cpython-3.7.0/lib/python3.7/site-packages/paddle/fluid/optimizer.py", line 752, in apply_optimize
optimize_ops = self.apply_gradients(params_grads)
File "/opt/_internal/cpython-3.7.0/lib/python3.7/site-packages/paddle/fluid/optimizer.py", line 722, in apply_gradients
optimize_ops = self._create_optimization_pass(params_grads)
File "/opt/_internal/cpython-3.7.0/lib/python3.7/site-packages/paddle/fluid/optimizer.py", line 545, in _create_optimization_pass
self._create_global_learning_rate()
File "/opt/_internal/cpython-3.7.0/lib/python3.7/site-packages/paddle/fluid/optimizer.py", line 284, in _create_global_learning_rate
"learning rate variable is create outside optimizer,"

TypeError: learning rate variable is create outside optimizer,can not create new learning rate variable for new program

情景:分布式训练中,Adam优化器上的“learning_rate"参数用fluid.layers.exponential_decay时弹出错误。单机训练不会有错误,学习率参数设置为常数也不会有错误。

相关代码:

def create_optimizer(is_distributed):
"""
Create optimizer, and decide whether to apply distributd strategy according
to the "distributed" flag
"""
l2 = fluid.regularizer.L2Decay(regularization_coeff=0.1)
optimizer = fluid.optimizer.Adam(learning_rate=fluid.layers.exponential_decay(learning_rate=args.learning_rate,decay_steps=1,
decay_rate=0.9999,
staircase=False), regularization=l2)
if is_distributed:
optimizer = distributed_optimize(optimizer)
return optimizer

0
收藏
回复
全部评论(1)
时间顺序
哎呦不错哦
#2 回复于2020-10

想问一下使用的是什么版本的Paddle?

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户