从paddle OCR中使用开源的检测模型进行微调的时候报错。环境是paddle-gpu 2.2.1
Traceback (most recent call last):
File "tools/train.py", line 148, in
main(config, device, logger, vdl_writer)
File "tools/train.py", line 125, in main
eval_class, pre_best_model_dict, logger, vdl_writer, scaler)
File "/home/aistudio/work/PaddleOCR/tools/program.py", line 255, in train
optimizer.step()
File "", line 2, in step
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/base.py", line 276, in __impl__
return func(*args, **kwargs)
File "", line 2, in step
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
return wrapped_func(*args, **kwargs)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py", line 229, in __impl__
return func(*args, **kwargs)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/adam.py", line 422, in step
loss=None, startup_program=None, params_grads=params_grads)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/optimizer.py", line 891, in _apply_optimize
optimize_ops = self._create_optimization_pass(params_grads)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/optimizer.py", line 677, in _create_optimization_pass
[p[0] for p in parameters_and_grads if not p[0].stop_gradient])
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/adam.py", line 297, in _create_accumulators
self._add_moments_pows(p)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/adam.py", line 262, in _add_moments_pows
self._add_accumulator(self._moment1_acc_str, p, dtype=acc_dtype)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/optimizer.py", line 592, in _add_accumulator
"Optimizer set error, {} should in state dict".format( var_name )
AssertionError: Optimizer set error, conv2d_0.w_0_moment1_0 should in state dict
看不明白,建议提issue
看错误应该是在断点续训时候,加载优化器的参数时报错。
报错的含义是:加载的优化断点参数和当前的优化器需要的参数不匹配。
谢谢,我看看
看到别人已经提了,没看到解决方案
你断点续训不要加载optimizer就好了