MMDetection 部分代码更改无法更新/更新无效

问题

最近遇到一个问题:在自己修改了voc.py后照例使用了python setup.py install,想要把修改更新到 mmdet 中。但是模型训练报错的时候通过查看命令行打印的一些内容,发现依旧执行的是未修改时的代码。

他人方法

首先查看这个博客以及 mmdetection 官方文档:

MMDetection修改代码无效_yolo v8修改模型架构但是没有用-CSDN博客​blog.csdn.net/q923714892/article/details/124294395​编辑icon-default.png?t=N7T8https://link.zhihu.com/?target=https%3A//blog.csdn.net/q923714892/article/details/124294395

https://github.com/open-mmlab/mmdetection/blob/main/docs/zh_cn/notes/faq.md​github.com/open-mmlab/mmdetection/blob/main/docs/zh_cn/notes/faq.mdicon-default.png?t=N7T8https://link.zhihu.com/?target=https%3A//github.com/open-mmlab/mmdetection/blob/main/docs/zh_cn/notes/faq.md

第一个略显麻烦而且不是长久之计,并没有采纳。

第二个官方文档值得一试,也是最终解决的思路。

解决方法

很重要的一点是,如果你安装过 mmdet 两个版本(比如当时安装时候总出问题,于是多次执行安装 mmdet ),并且当前编辑器采用的是 mmdet 在本地不是初次安装的版本,那么很有可能你对代码的修改执行的更新,其实是更新到了初次安装的本地 mmdet 中。

Q:我如何知道我到底安装了几个 mmdet 版本?or 查看 mmdet 安装到本地的位置?
A:找到你安装 anaconda 的文件夹,依次进入 envs/[你现在正在使用的环境名称]/lib/site-packages/,找到 mmdet 为首的文件夹,比如我这边既有 mmdet 2.13,又有 mmdet 3.0 版本。

这时候简单粗暴地将不需要的 mmdet 版本扔进垃圾桶就可以了。清空回收站,重启你的编辑器,再次进行python setup.py install更新修改的代码,现在就可以更新进去了。

由此可见,如果本地存在两个 mmdet 时,是会优先更新进旧版本的。但是奇妙的是,唯独我在修改voc.py时才出现这个问题,其他的代码更新是可以正常更新到新 mmdet 中。

要不然 mmdetection 3.x 大更新中的新增 mmengine 根本不存在于 mmdet 2.x版本,如果其他代码更新不在新安装的 mmdet 中,那早就报错了。可能只有部分文件是更新到本地安装的第一个版本中,可能算 mmdetection 的 bug 之一吧(?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值