摘要

视觉理解(Perception)模块的实验按编号存放。早期几个实验的编号与后来按“系统依赖顺序”整理的编号体系不一致,于是需要改名。但改名有风险:旧的运行结果、冻结的配置文件、测试数据和已经发布的博客都引用着旧路径,粗暴地全文替换会破坏历史记录。

本条记录的是一份只读迁移计划和一个检查工具:它列出要改什么、谁在引用、迁移前提是否成立,但不移动任何文件。报告写作时迁移还没有执行,计划状态是“已提出、未实施”。

要回答的问题

怎样给四个代码目录改编号,同时保证历史结果、冻结配置、测试数据和已发布博客网址都不被破坏?

数据与来源

  • 一份映射文件,列出每个实验的新编号、旧编号、源目录、目标目录、历史数据格式前缀、已发布博客网址和计划的新输出位置。
  • 检查工具只盘点 Git 已追踪的文本(项目和可选的博客仓库),不扫描媒体、模型检查点或未追踪缓存。
新编号 旧编号 动作
B11 B04(已验证的游戏图标分类器) 改代码目录名
B12 B026(战场生物检测) 改代码目录名
B15 B06(战斗六边形网格配准) 改代码目录名
B16 B07(战场格子状态) 改代码目录名
B023 B08、旧 B021(标题 OCR 与图标标注) 已并入,保留兼容说明,不再迁移

方法

计划规定的不变量:不移动原始媒体、不移动历史输出、不重写冻结配置或数据格式、不改已发布博客网址、不做自动全文替换;新的训练/评估用新名字和新配置。

迁移次序:

  1. 先跑受影响的基线测试,记录已有失败。
  2. 建立只读路径解析:旧代码/测试数据路径还存在就直接读;不存在时只按精确的代码目录前缀转到新位置。历史数据路径不做字符串替换;新旧输出根下出现同名运行就报错,不静默选一个。
  3. 先改当前调用方和启动说明,再移动四个代码目录;旧目录只留一个指向新入口的简短说明。
  4. 旧运行、冻结配置里的输出路径、数据格式、运行 ID、测量和报告链接全部保留。
  5. 特别注意:某个实验的准备脚本同时依赖另一个实验的网格几何、边界测试数据和旧评分输入,需要逐个拆清读写用途。
  6. 生产包名和语义命名的数据目录不因编号改变而搬迁。
  7. B08 不再迁移;B023 保留旧输出兼容,且不能和当前的 B021(场景分类)混淆。
  8. 更新博客里可见的编号和代码链接,五个已发布网址全部保留;历史图库数据和测量引用不全文替换。

检查工具只打印 JSON、没有“应用”选项;遇到调用方缺失、目标目录冲突或读不到追踪文本就返回非零。“结构前提成立”只表示目录前提满足,“可以应用”永远是 false。

设置

配套的小测试使用临时极小目录,检查:干跑不改文件;目标冲突和意外代码会阻止继续;Windows 路径和越界输入被拒;旧测试数据别名可读;旧运行路径不会被改号;跨根同名输出被拒;当前 B021 不会被错认成历史 B021。

结果

产出了映射文件、检查工具和测试。报告里没有记录检查工具实际运行的输出或测试通过数,也没有执行迁移。

失败与负结果

无。

局限

  • 静态盘点不能证明发现了所有动态拼接的路径,仍需结合映射里的调用方清单人工审阅。
  • 未追踪的新代码需要另行盘点。
  • 迁移用的路径解析辅助函数当时只用于验证本方案,没有接入任何训练或生产路径;实际集成时要与现有数据路径配置统一,避免出现两套互相冲突的数据根。

结论与下一步

这份计划的价值在于把“改个名字”拆成可检查、可回退的步骤,并明确哪些东西绝对不能动。实际迁移需要按上面的次序执行,并在执行后运行受影响测试、博客构建和页面验证。