下个路口,转角 2024-05-16 18:33 采纳率: 0%
浏览 5

mmagic添加改写模型

最近在mmagic这个工具包下想根据现有模型改进一下,但是在mmagic.model.editor包下面新建了一个package,里面包含自己的改过的网络结构,也在初始化文件中添加了,新写了配置文件,配置文件中生成器的类型换成了自己改写的,但是训练的时候报错KeyError: '。。。。。 is not in the mmagic::model registry. ,网络结构中添加了@MODELS.register_module(),但还是报错。一直不知道是那个地方出现问题,请教一下友友们,有能够解决的友友可以私信我,有偿。

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-05-16 18:34
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    您想要解决的问题

    您想要解决的问题是在mmagic这个工具包中添加并使用自己改写的模型结构时遇到的KeyError问题。具体来说,您在mmagic.model.editor包下创建了一个新的包,包含了您修改过的网络结构,并在初始化文件中进行了添加。您还编写了一个新的配置文件,将生成器类型更改为自定的模型,但在训练过程中遇到了错误,提示“... is not in the mmagic::model registry.”。

    问题出现原因

    1. 注册问题:尽管您在网络结构中添加了@MODELS.register_module(),但可能存在注册过程中的问题,导致mmagic无法正确识别和加载您的自定义模型。
    2. 配置文件问题:配置文件中可能存在错误,比如路径指定不正确或者生成器类型名称拼写错误。
    3. 导入问题:您的自定义包可能没有被正确导入到mmagic的模块注册系统中。

    问题解决方案

    1. 确保注册正确:检查@MODELS.register_module()是否正确应用于您的模型类,并且确保注册的名称与配置文件中使用的名称一致。
    2. 检查配置文件:确保配置文件中的路径和模型名称与您的自定义模型完全匹配。
    3. 检查导入路径:确保在mmagic的初始化文件或模块注册文件中正确导入了您的自定义模型包。
    4. 环境检查:确认您的Python环境和mmagic工具包版本是否支持您所做的更改。

    提供代码

    由于您没有提供具体的代码片段,我只能给出一个大致的解决方案框架:

    # 自定义模型的Python文件,例如 my_model.py
    from mmagic.modeling import registry
    from torch import nn
    
    @registry.REGISTER_MY_MODEL('my_custom_model')
    class MyCustomModel(nn.Module):
        def __init__(self, ...):
            super(MyCustomModel, self).__init__()
            # 你的自定义网络结构
    
        def forward(self, x):
            # 你的前向传播逻辑
            return x
    
    # 在mmagic的某个初始化文件中,确保导入了上述自定义模型
    # from .my_model import MyCustomModel
    

    代码运行方式

    1. 确保您的环境中安装了mmagic和所有必要的依赖。
    2. 将上述代码保存到适当的文件中,并放在正确的目录结构下。
    3. 运行您的训练脚本,并确保它引用了正确的配置文件。

    代码预期运行结果

    如果一切配置正确,您的自定义模型应该能够在mmagic中被正确注册和加载,训练过程中不会出现KeyError

    推荐相关链接

    请注意,由于mmagic不是一个我所知的广泛使用的库,上述解决方案基于一般性的Python和深度学习框架的知识。如果mmagic是一个特定的、不太为人所知的工具包,您可能需要查阅该工具包的官方文档或者社区以获得更具体的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月16日