mmpretrain
mmpretrain copied to clipboard
[Bug] 关于模型扩展的问题
分支
main 分支 (mmpretrain 版本)
描述该错误
首先我是准备自己写一个模型,然后运行,我是先按照教程安装了mmpretrain的包,然后按照教程把对应的配置文件都配置好了,按照tools/train.py config/xxx.py运行后报我这个模型没有注册,问题在于它一直调用的是我安装的最初始的mmpretrain,所以找不到这个模型,然后我卸载掉,直接在mmpretrain包里面运行tools/train.py config/xxx.py,给我报KeyError: 'ImageClassifier is not in the mmengine::model registry. 我查看了github上相关的问题,第一种是需要安装mmpretrain,但是会产生第一个的问题,第二种是配置文件default_scope = 'mmpretrain',我已经配置好了,但是还是报错,我现在能运行的方式就是修改模型之后再次python setup.py install放入到python解释器里面,但是这样很麻烦,请问有什么办法解决这个问题或者说是我哪里操作不当导致的?
环境信息
tools/train.py config/xxx.py
其他信息
我不知道是不是我的操作问题还是啥?但是修改模型后每次导入这种操作很麻烦,请问官方如何解决这个问题?
可以试试在自己的mmpretrain根目录使用命令 pip install -v -e .
安装源码包,这样就可以使用自己的修改的源码了
https://mmpretrain.readthedocs.io/zh-cn/latest/get_started.html#id4
我知道原因了,使用的安装命令是错误的,我使用的是python setup.py install,这个就是直接把库安装到里面,是静态的,所以每次都需要修改,教程中使用的是mim install -e ".[multimodal]"是动态的,生成.egg并指向此包,所以修改的时候就会动态的进行修改!
python setup.py install
每次都要修改,指的是每次改完源码后都要运行一下python setup.py install吗
python setup.py install
每次都要修改,指的是每次改完源码后都要运行一下python setup.py install吗
是的,因为我使用python setup.py install进行安装的时候是静态的,在修改代码后需要python里面的库是之前的,而使用pip install -e .是动态的,是生成一个egg包指向我的库,所以在修改的时候python中的库就会自动修改
python setup.py install
每次都要修改,指的是每次改完源码后都要运行一下python setup.py install吗
是的,因为我使用python setup.py install进行安装的时候是静态的,在修改代码后需要python里面的库是之前的,而使用pip install -e .是动态的,是生成一个egg包指向我的库,所以在修改的时候python中的库就会自动修改
好的谢谢,我说自定义的模块怎么识别不到,我直接导入了