1de88a5d0a
- 内存:prepare_segmentation 改为流式解码,只留分屏和配准的抽样帧,绿框逐帧在两半上找; 分割那一半由 SegmentationInput.target_frames() 到用时再解码,segment_video 边读边写 jpg; MedSAM2 init_state 的读帧换成直接在存放设备上建张量(不改 MedSAM2 源码,结果逐位相同); 传播结果写进预分配数组。帧数最多的一段视频常驻内存峰值 11.2 GiB → 2.3 GiB,分辨率最大的 一段原代码被 OOM 杀掉、现为 4.2 GiB;两段的掩码和全部产物与改前逐字节相同,33 段视频的 第 1–2 步结果与改前一致,29 例配准与 review.csv 一致。 - 快照:ceus_quant 开跑时写 snapshot/(git、ceus.yaml、review.csv、uv.lock、segment.json), 配置和核对表从快照副本读;收尾由新函数 runs.finish_snapshot 只新建 finished.json。 build 与 ceus_align_review 同样改用 finish_snapshot 记结束时间。 - build:summary.json 加 video_sha256;装 CEUS 结果时核对快照里的 delivery_dir、逐例核对 视频 SHA-256 和推注时间,不同就整次停下;新字段做类型检查,不进 tic.json。 来源:主会话任务(问题 1–3 及补充的 delivery_dir 比对)。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
research-wiki
本项目的文档。读者是没参与过讨论的医学 AI 方向硕士生:懂 Python 和深度学习,不懂胰腺囊性肿瘤。
| 位置 | 内容 | 维护方式 |
|---|---|---|
explanation/ |
系统由哪些环节组成、各环节的输入输出、为什么这样分。从 结构.md 读起 |
常青:改了就重写那一段 |
design/ |
每次重要决策的来历,文件名 NNNN-简短主题.md |
写完冻结;决策变了新写一份并注明取代关系 |
guides/ |
怎么做某件事:建环境、跑某个环节 | 常青,随实际情况更新 |
reference/ |
查得到的外部事实:术语表、算法参数的原始口径、临床方给的字段定义。每条自带出处;抄自 Linear 的写明抄自哪份、哪天同步 | 常青,随出处更新 |
待定问题/ |
还没定、迟早要定的问题,一个问题一份文件:问题、为什么要紧、选项、倾向、等谁定 | 定了就删掉,结论写进 design/,同一个提交 |
任务书/ |
每个模块动手前的任务书,文件名 NN-模块名.md:要做什么、依据哪些文档、怎么验收 |
负责人确认后交执行者;要改就在开头写「这一版改了什么」 |
survey/ |
文献调研:同类工作怎么做、对我们意味着什么,引文带 PDF 页码(PDF 在根目录 reference-pdf/,不进 git) |
写完冻结;有新调研另写一份 |
results/ |
实验结果报告,每个数字标明来自哪次运行(runs/ 下的目录名) |
写完冻结 |
scratch/ |
讨论中的草稿、上下文压缩前的快照 | 由负责人清理,Agent 不删 |
几类文档的开头
不用 YAML 头,靠固定的开头段落:
- design:
# NNNN 标题→状态:负责人 YYYY-MM-DD 认可(「原话」) | 日期:…→ 取代了谁就写一行> 取代 NNNN 的第 X 条→## 先认识几个词→## 背景→## 决定(编号条目,写明哪条是负责人定的、哪条是 Agent 提的) → 需要时加## 不做的事。 - 任务书:标题 → 一段目的 →
来源:(负责人原话) →## 先认识几个词→## 开工前先读→ 分阶段的工作内容(每阶段写收尾点) →## 测试→## 规模→## 审阅→## 报告(分开写已验证的事实、推断和未验证的部分,附运行目录、提交号、花费)。 - results:
日期 | 对应结构.md 第七部分第 N 步 | 原始记录:runs/…→## 先认识几个词→## 一 跑了什么→ 结果,每个数字带运行目录。