opencd库的数据预处理
首先我们将opencd源代码下载下来,代码文件夹目录如图:

根据代码发布者给的示例,我们了解到,训练代码是一行命令:
python tools/train.py configs/changer/changer_ex_r18_512x512_40k_levircd.py --work-dir ./changer_r18_levir_workdir
可见,这个命令包含三个部分:
python tools/train.py运行对应py脚本
configs/changer/changer_ex_r18_512x512_40k_levircd.py输入位置参数
--work-dir ./changer_r18_levir_workdir输入可选参数
首先我们看train.py脚本都干了什么
第一件事:解析命令行参数,定义了一个parse_args()函数,接受来自命令行的参数;
参数分为两大类,一类为必须填写的“位置参数”,一类为“可选参数”,通过--来区分;
如'config'是位置参数;'--work-dir'是可选参数
'config',作为该对象的一个属性存在,可以直接通过parse.parse_args().config来访问
其余可见图中注释

第二件事:载入命令行参数到cfg,构建runner(cfg),启动训练;
我们发现train.py作为一个执行命令的入口,定义了命令的格式,需要的参数,将命令保存在一张图纸(cfg)上,然后执行命令
然后我们来看configs/changer/changer_ex_r18_512x512_40k_levircd.py这个参数讲了什么
进入到命令所至的py文件,我们看到这个文件继承了两个东西

好的,我们先不管这个东西是什么,我们先来看下面的内容
很轻松,我们看出来下面是一堆简短的变量定义与初始化,包括crop随机裁剪尺寸,模型骨干配置,decode_head,训练流水线,优化器策略
我们不难想出,下面的内容是对所继承部件的修改与补充,那下一步我们就应该去追问:继承的东西在做什么?
1.先进入到/common/standard_512x512_40k_levircd.py
再进一步,/standard_256x256_40k_levircd.py
dataset_type = 'LEVIR_CD_Dataset' data_root = 'data/LEVIR-CD'定义数据集类型与路径
pipline作为列表定义数据增强流水线,顺序执行,基于openmmlab
dataloader定义数据读取
优化器
学习率衰减策略param_scheduler
训练策略
default_hooks于控制训练过程中的计时、日志、学习率调整、模型保存、可视化等行为
2.进入到/base/models/changeformer_mit-b0.py
是一些前处理和模型的参数配置
到目前为止有两个疑问,前面介绍的全是配置,程序在哪里加载我的数据集,程序在哪里构建模型
即,怎么调用的
这两个标黄的文件

浙公网安备 33010602011771号