摘要
战斗画面的英雄 HUD 区域有英雄头像。项目已有一个图标分类器能认头像,本实验想在一组独立准备的 16 张头像裁图(简称 HUD16)上,用事先固定的策略跑一次“影子运行”:私下计算结果、不接入任何产品,只看分类器在这组裁图上会怎么判。
为了不影响同时在跑的其他任务,这次运行被限制在一个很紧的资源窗口里,而且只允许运行一次。结果:唯一的一次运行在模型初始化阶段超过了 20 秒的期限,被强制终止,没有产生任何可评分结果。按规则,失败原样保留,不重试。
要回答的问题
在固定策略、严格资源限制下,现有头像分类器对 HUD16 这 16 个裁图会给出什么排名和接受决定?
数据与来源
- HUD16:16 张从原生截图裁出的英雄 HUD 头像(194×226 像素,RGB),来自两个来源组,经过数据方和质检方联合冻结。准入时:9 个可读身份、6 个任务控制样本(2 个场景角色、4 个纯 UI)、1 个待定。
- 更早的一组 HUD10 输入不重新运行;留出的来源不包括在内。
- 参考答案不作为输入;运行只读取中性的清单和文件时间戳。
- 分类器:已有的图标分类器检查点。
方法
预检(--preflight-only)只读清单和准入元数据,确认 16 行、两个来源组、裁图尺寸以及原图/裁图时间戳都没变,不建目录、不起进程、不解码图像。预检通过。
实际运行还需要明确的资源释放授权,然后只创建一次 run-001,已存在就不覆盖、不自动重试。资源限制:
| 限制 | 值 |
|---|---|
| 进程 | 一个挂起启动的工作进程,放入专属的 Windows Job,关闭即杀 |
| 内存 | 提交内存上限 2 GiB,峰值常驻内存守卫 2 GiB |
| 时间 | 初始化 20 秒、批处理 5 秒、共享工作期限 25 秒、含清理总共 30 秒 |
| 计算 | 最多 16 次裁图解码和 16 次全库 NCC 排名,一次模型加载,一批 CPU float32 推理;各数学库线程数 2 |
| 禁止 | 额外预热、拟合、改裁图、OCR、GPU、训练、下载、视频解码、网络连接 |
输出原计划保存完整的 77 类原始排名、旧运行时的决定,以及单独的“仅有效性门槛”决定(门槛 .494140625)。
设置
运行前做过一次仪器软件验证:3 个人造分组,0 错误、0 失败,没有调用模型、OCR、子进程或读取图像——这只证明调用框架本身的逻辑,不是识别结果。
结果
| 项目 | 实际 |
|---|---|
| 状态 | INITIALIZATION_DEADLINE(初始化超时) |
| 耗时 | 20.031 秒 |
| 工作进程退出码 | 124 |
| 峰值常驻内存 | 441,368,576 字节(约 0.41 GiB,未超 2 GiB) |
| 记录到的阶段 | 只有 worker_started(0.078 秒) |
| 模型是否就绪 | 否 |
| 工作进程日志 | 空 |
| Job 中进程总数 / 结束时仍活动 | 2 / 0 |
没有任何可评分的排名或决定。
失败与负结果
整个实验以失败结束:工作进程启动后 20 秒内没有完成模型初始化,被期限终止。内存不是原因(峰值约 0.41 GiB);日志为空,所以从这次运行本身看不出卡在哪一步(导入、加载检查点还是别的启动步骤)。
按事先约定:失败保留、不重试;不把它算作头像准确率、3 秒目标或 p95 的任何证据;资源窗口立即归还;之后只允许只读地排查启动过程和进程成员,并做可逆的软件修复,不能直接开第二次模型窗口。
局限
- 没有产生任何识别数据,不能对分类器在 HUD16 上的表现下任何结论。
- 预检和仪器软件验证通过,只说明输入冻结和调用框架正确,不是识别准确率、校准或速度。
结论与下一步
在这么紧的初始化期限下,冷启动的模型加载没能完成。若要重新尝试,需要先只读地定位启动慢在哪里(例如进程启动、依赖导入或检查点加载),做可逆修复,再申请新的、单独批准的窗口。
Comments