出现问题
使用mmdetection训练模型,出现下面错误
错误提示是这样的
UnboundLocalError: local variable 'beta1' referenced before assignment
问题原因
使用了torch1.8.xx构建环境,这似乎是torch1.8.xx下面的一个bug。在后续的torch版本已经修复。
解决方法
找到报错的路径下的adamw.py文件,在上面报错的图上倒数第三行会有,我这里是
.conda/envs/liudong-mmlab/lib/python3.7/site-packages/torch/optim/adamw.py
打开该路径下的adamw.py文件,找到第110行
F.adamw(params_with_grad,
将改行前面空格删掉一个,到下面的程度
beta1, beta2 = group['betas']
# update the steps for each param group update
state['step'] += 1
# record the step after step update
state_steps.append(state['step'])
F.adamw(params_with_grad,
grads,
exp_avgs,
exp_avg_sqs,
max_exp_avg_sqs,
state_steps,