leaningzjh 2023-10-16 16:57 采纳率: 0%
浏览 71

MaskRCNN: 'SwinTransformer is not in the backbone registry

训练Swin-Transformer-Object-Detection-master时出现报错
MaskRCNN: 'SwinTransformer is not in the backbone registry
使用版本mmdet==2.11.0

尝试使用python setup.py develop无用

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-17 07:32
    关注

    【以下回答由 GPT 生成】

    回答: 根据您提供的问题内容,您遇到的问题是训练Swin-Transformer-Object-Detection模型时出现了'SwinTransformer is not in the backbone registry'的报错。这个问题可能是由于mmdet版本2.11.0在其backbone registry中没有包含SwinTransformer导致的。

    针对这个问题,您可以尝试以下解决方案:

    1. 确认mmdet版本: 首先,请确保您使用的确实是mmdet版本2.11.0。可以通过以下代码片段来确认您目前使用的mmdet版本:
    import mmdet
    print(mmdet.__version__)
    

    如果输出结果确实是2.11.0,那么我们需要采取其他解决方案。

    1. 检查backbone registry: 这个报错是由于SwinTransformer未在mmdet的backbone registry中注册导致的。您可以检查mmdet/configs/base/backbone.py文件,或者根据您自己的项目结构,找到backbone registry所在的文件。在该文件中,检查是否包含了SwinTransformer的注册代码,如果没有,请手动添加以下代码:
    from ..builder import BACKBONES
    
    @BACKBONES.register_module()
    class SwinTransformer():
        # SwinTransformer的定义和相关参数
        ...
    

    确保该代码与其他backbone的注册代码格式一致。

    1. 更新mmdet代码库: 如果在上述步骤中没有解决问题,您可以尝试更新mmdet代码库到最新的版本,然后重新安装mmdet。可以通过以下命令来更新mmdet代码库:
    pip install -U mmdet
    

    然后再次尝试进行训练,看看问题是否得到解决。

    如果上述解决方案都不能解决您的问题,很抱歉,我无法提供更多帮助。建议您向mmdet的开发者或相关社区提问,以获取更准确的解答和支持。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月16日