KeyError: 'LearningRateDecayOptimizerConstructor is not in the mmdet::optim_wrapper registry. Please check whether the value of LearningRateDecayOptimizerConstructor is correct or it was registered as expected.

KeyError: 'LearningRateDecayOptimizerConstructor is not in the mmdet::optim_wrapper registry. Please check whether the value of LearningRateDecayOptimizerConstructor is correct or it was registered as expected.

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
您提问的目的是解决在使用mmdetection框架进行训练时遇到的一个关键错误:KeyError,具体来说是LearningRateDecayOptimizerConstructor没有在mmdet::optim_wrapper注册表中找到。
您上传的图片显示了一个Python错误跟踪信息,指出在尝试构建优化器包装器时,LearningRateDecayOptimizerConstructor无法在mmdetection的优化器包装器注册表中找到。
这个问题可能出现的原因有:
LearningRateDecayOptimizerConstructor的名称拼写有误。LearningRateDecayOptimizerConstructor,或者该特性在新版本中已被更改或移除。LearningRateDecayOptimizerConstructor可能没有正确注册到mmdetection的优化器包装器注册表中。为了解决这个问题,您可以尝试以下步骤:
LearningRateDecayOptimizerConstructor,如果不支持,您可能需要升级到支持该特性的版本。LearningRateDecayOptimizerConstructor到优化器包装器注册表中。由于错误信息提示的是注册表问题,通常不需要修改代码,而是需要检查配置或框架版本。但是,如果需要手动注册,代码可能如下:
from mmengine.optim import OPTIM_WRAPPERS
# 假设 LearningRateDecayOptimizerWrapper 是正确的类
class LearningRateDecayOptimizerWrapper:
# ... 实现类的逻辑 ...
# 注册 LearningRateDecayOptimizerWrapper 到 OPTIM_WRAPPERS
OPTIM_WRAPPERS.register_module(LearningRateDecayOptimizerWrapper)
在运行代码之前,请确保您已经安装了mmdetection框架,并且您的环境配置正确。通常,您需要使用Python的虚拟环境来管理依赖。
如果问题是由于注册表问题导致的,那么在正确注册LearningRateDecayOptimizerConstructor之后,您应该能够正常运行训练脚本而不会遇到KeyError。
请根据上述步骤进行排查和解决。如果问题依然存在,可能需要更详细的错误信息或者框架的更新日志来进行进一步的分析。