Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] 关于模型扩展的问题 #1859

Open
qsd-github opened this issue Jan 2, 2024 · 5 comments
Open

[Bug] 关于模型扩展的问题 #1859

qsd-github opened this issue Jan 2, 2024 · 5 comments

Comments

@qsd-github
Copy link

分支

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

其他信息

我不知道是不是我的操作问题还是啥?但是修改模型后每次导入这种操作很麻烦,请问官方如何解决这个问题?

@NagatoYuki0943
Copy link

NagatoYuki0943 commented Jan 3, 2024

可以试试在自己的mmpretrain根目录使用命令 pip install -v -e . 安装源码包,这样就可以使用自己的修改的源码了

https://mmpretrain.readthedocs.io/zh-cn/latest/get_started.html#id4

@qsd-github
Copy link
Author

我知道原因了,使用的安装命令是错误的,我使用的是python setup.py install,这个就是直接把库安装到里面,是静态的,所以每次都需要修改,教程中使用的是mim install -e ".[multimodal]"是动态的,生成.egg并指向此包,所以修改的时候就会动态的进行修改!

@pheotry
Copy link

pheotry commented Jan 10, 2024

python setup.py install

每次都要修改,指的是每次改完源码后都要运行一下python setup.py install吗

@qsd-github
Copy link
Author

python setup.py install

每次都要修改,指的是每次改完源码后都要运行一下python setup.py install吗

是的,因为我使用python setup.py install进行安装的时候是静态的,在修改代码后需要python里面的库是之前的,而使用pip install -e .是动态的,是生成一个egg包指向我的库,所以在修改的时候python中的库就会自动修改

@pheotry
Copy link

pheotry commented Jan 10, 2024

python setup.py install

每次都要修改,指的是每次改完源码后都要运行一下python setup.py install吗

是的,因为我使用python setup.py install进行安装的时候是静态的,在修改代码后需要python里面的库是之前的,而使用pip install -e .是动态的,是生成一个egg包指向我的库,所以在修改的时候python中的库就会自动修改

好的谢谢,我说自定义的模块怎么识别不到,我直接导入了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants