fix(configs): 修复 resnet18 训练配置无法构建,并补上对应的评估配置

- configs/train/resnet18.yaml 此前直接报错:它同时继承 tiny_conv 与 resnet18 的模型
  配置,深度合并后 backbone 混了两边字段。在 configs/model/resnet18.yaml 的 backbone
  上加 _replace_: true 整块替换
- _replace_ 标记此前不生效:_load_raw 对每个 base 都会先 deep_merge({}, data),
  标记在参与替换判断之前就被剥掉了。改为合并期间保留、load_config 末尾统一剥除
- 新增 configs/eval/resnet18.yaml:评估必须与训练用同一套模型配置,否则构建出的
  骨架与权重对不上,而此前只有 baseline 一个评估配置
- 新增参数化测试:仓库里每个配置都要能真的构建出组件(片段自动跳过),
  且训练/评估配置对的 model 段必须一致
- README 补充骨架与配置对的对应表

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Shaun Zhou
2026-09-04 15:42:14 +08:00
co-authored by Claude Opus 5
parent e581d9b3d7
commit 47fb0f1125
5 changed files with 99 additions and 9 deletions
+13
View File
@@ -0,0 +1,13 @@
# resnet18 版本的评估配置。
# 必须和训练时用的模型配置一致,否则构建出来的骨架与权重对不上。
_base_:
- ../train/resnet18.yaml
device: auto
checkpoint: runs/resnet18/best.pth
eval:
split: val
score_threshold: 0.3
iou_threshold: 0.5
topk: 50
+3
View File
@@ -2,6 +2,9 @@
model:
name: defect_net
backbone:
# 整块替换:不加这行的话,从 tiny_conv 继承来的 widths/depths/block 会残留,
# 传给 TorchvisionBackbone 直接报错。见 utils/config.py::deep_merge
_replace_: true
name: torchvision
arch: resnet18
pretrained: true