1.前言
源于论文Changer: Feature Interaction Is What You Need forChange Detection
源码位置:open-cd/README.md at main · likyoo/open-cd (github.com)
同样是基于MMSegmentation框架的代码,不符合本人编程习惯所以一直也没有研究这东西,近期打算对这类框架进行复现,看一下他们的精度。
这类框架的特点就是比较难分解,调用比较抽象,好在论文作者在readme里面给出了相关的一些东西,但是总体来说还是比较麻烦,可读性比较差。
2.代码运行尝试
对于库的安装请严格按照作者给出的版本号,否则代码运行会出现调用错误,如:ImportError: cannot import name 'LayerNorm2d' from 'mmseg.models.utils' site:github.com,参照给出的版本:
如果依然存在报错,使用 pip list 查看安装库的版本情况,卸载版本号不符合的,重新进行安装。有一点要注意的是,当版本对应,运行代码依然出现引用错误,显示在mmsegmentation框架下引用,实际上需要 pip install 'name' ,很奇怪。
在这个位置查看数据存放格式
在训练过程中按照下面格式放好数据就可以开始训练:
运行语句
cd open-cd
pip install -v -e .
python tools/train.py configs/changer/changer_ex_r18_512x512_40k_levircd.py --work-dir ./changer_r18_levir_workdir
注意: pip install -v -e .必须运行,否则会出现nomodel报错。
配置文件打印
from mmengine.config import Config
cfg = Config.fromfile('changeformer_mit-b0_256x256_40k_levircd.py')
print(cfg.optim_wrapper)
3.进行拆解
看了一下前辈的视频:4.config移植_哔哩哔哩_bilibili
发现能够使用pycharm的命令行配置,来对代码进行debug
但是在配置过程中依然存在问题
配置完命令行,会报错,并且一直没找到解决办法
train.py: error: unrecognized arguments: python tools/train.py configs/changer/changer_ex_r18_512x512_40k_levircd.py--work-dir ./changer_r18_levir_workdir
这里建议直接改args里面的内容,可以解决此类问题(但是需要注意,这里相对路径必须写完整)
由于运行方式不一样,在运行时会出现路径错误,这里需要调试修改
踩坑
这个位置的模块不要安装,执行安装命令的时候会卸载掉你的cuuda,损坏环境(如果执意安装需要备份环境)
相关链接
对于一些比较奇怪的问题,在git上面有不少回复,可以参考看一下:
顺带标注一下友情链接:
1.欢迎来到MMSegmentation的文档!— MMSegmentation 1.2.2 文档https://mmsegmentation.readthedocs.io/en/main/