
E1 执行笔记评价体系——亲手给论文镜头做一次光学分析论文Curriculum learning for ab initio deep learned refractive optics (Nature Communications, 2024)作者杨辛格 (Xinge Yang)、付强 (Qiang Fu)、Wolfgang HeidrichKAUST vccimaging代码AI4Optics/AutoLensDeepLens 的活跃维护分支实验日期2026-10-07 |环境AutoDL 实例PyTorch 2.1.2 cu121性质理解优先复现路线 · 实验 1/4摘要E1 用 AutoLens 加载论文配套手机镜头 cellphone.json复现光学评价体系RMS 光斑全视场 6.4μm、半视场 5.6μm、边缘 4.1μm两次运行结果一致。全程无卡模式 CPU 跑通成本不足 1 元。目录摘要一、E1 回答的问题光学设计到底在优化什么二、环境与资产三、执行过程三个坑与修法3.1 坑一JSON 格式不同步KeyError: ‘r_sensor’3.2 坑二缺测试图FileNotFoundError: NBS_1963_1k.png3.3 坑三无卡模式内存不足Killed四、结果论文镜头的成绩单五、成本账六、经验沉淀七、下一步E2 课程动力学附录 A执行命令清单附录 B资产路径速查附录 C自查清单一、E1 回答的问题光学设计到底在优化什么理解型复现的第一个实验不训练任何东西只做评价。理由论文的全部优化目标损失函数都建立在评价体系之上——先弄清什么是好镜头才能看懂后续 E2 课程设计在逼近什么。具体要回答三件事评价指标RMS spot radius 怎么算、在哪些视场点评、量级多少API 链路GeoLens 如何加载 JSON、做点列图分析、渲染仿真图像基准数字论文产出的镜头cellphone.json推测即论文 Fig.1 的 80.8° 手机镜头处于什么水平一个判断依据该 JSON 中r_last: 3.83 mm恰等于传感器尺寸 5.4164 mm 的半对角线5.4164×√2/2说明传感器对角半径 3.83 mm——与论文规格吻合这颗镜头就是论文设计产物分析它等于直接检验论文最终结果。二、环境与资产项值说明实例AutoDL 容器dd9f46bdad无卡模式完成全部 E1 工作Python/PyTorch3.10 / 2.1.2cu121base 环境直接可用零额外安装代码~/AutoLens/git clone克隆自 AI4Optics/AutoLens镜头文件datasets/lens_zoo/cellphone.json6 片式手机镜头需打补丁见下Zenodo 4.5 GB 官方包NAFNet checkpoint EDoF 测试图当天多次尝试下载失败93 KB/s 503 限流已确认 E1–E3 不依赖它仅 E4 需要——果断搁置不影响主线。这是理解优先路线的关键优势最重的资产排在最便宜的验证之后。三、执行过程三个坑与修法3.1 坑一JSON 格式不同步KeyError: ‘r_sensor’AutoLens 仓库自带 bugcellphone.json是旧格式sensor_size字段而读取代码deeplens/geolens_pkg/io.py期望新字段r_sensor。库和数据没同步属上游问题。修法一次性补丁importjson pdatasets/lens_zoo/cellphone.jsondjson.load(open(p))d[r_sensor]d[sensor_size][0]/2# 边长 → 半边长json.dump(d,open(p,w),indent4)3.2 坑二缺测试图FileNotFoundError: NBS_1963_1k.png渲染环节引用datasets/charts/NBS_1963_1k.png1953 年美国空军标准分辨率测试卡仓库只有datasets/resolution_chart1.png。修法复制顶上效果等价。mkdir-p~/AutoLens/datasets/chartscp~/AutoLens/datasets/resolution_chart1.png ~/AutoLens/datasets/charts/NBS_1963_1k.png3.3 坑三无卡模式内存不足Killedphotorealistic 渲染环节PSF 卷积 全分辨率仿真OOM 被杀。且 conda 装字体包同样 OOM——无卡模式两条铁律别用 conda解依赖必 OOM要用就 pip重内存任务直接留给有卡模式。处置渲染属于锦上添花数值结果已到手E1 到此收档渲染与 E2 合并到有卡时段做。另有无害警告两类use_ai2legacy format 提示旧 JSON 系数格式自动兼容不影响、Nimbus Sans 字体缺失matplotlib 自动回退不出字体的图照常出。四、结果论文镜头的成绩单python 0_hello_deeplens.pyCPU核心输出两次运行视场RMS radiusGeo radius复现一致性FoV 0.0轴上6.39–6.43 μm15.07–15.09 μm✅ ±0.05 μmFoV 0.5半视场5.55–5.59 μm16.01–16.10 μm✅FoV 1.0边缘4.06–4.07 μm10.65–10.77 μm✅解读量级对齐论文论文 Table 1 中 80.8° 大视场手机镜头 Avg RMS 约 15.74 μm本镜头三视场 4–6.5 μm明显更好符合其较窄视场的定位也与论文视场越大像差越难控制的主线一致边缘视场 RMS 反而最小4.1 5.6 6.4——说明该设计把校正余量花在了边缘畸变主导区域这是优化目标加权重加权的结果恰好呼应论文重加权掩码机制把已学好的视场权重置零逼优化器啃边角Geo radius ≈ 2.4×RMS几何半径最远光线与均方根半径之比反映光斑分布形状——能量集中但拖尾典型像差残余特征两次运行逐视场复现到 ±0.05 μm追迹过程的随机性光线采样种子极小评价体系是确定性的——这也是消融实验E3可信的前提。产出文件~/AutoLens/lens.png镜头剖面图本篇笔记配图。注assets/imgs/下的lens_design.png、ultra_target.png为仓库自带演示图非本次产出。五、成本账项花费无卡模式约 1 h克隆、补丁、两次全量分析≈ ¥0.1失败尝试Zenodo 下载已删残留、conda OOM≈ ¥0纯时间成本E1 合计 ¥1预算 E1 为 0实际贴齐对照完整复现口径这一步在原 P 系列规划里对应 P0/P1 的验证环节成本结构与理解优先预算一致。六、经验沉淀AutoLens 上游 bug 自查清单JSON 缺r_sensor→ 补字段缺NBS_1963_1k.png→ 复制 resolution_chart1.png。两个坑修完即稳定无卡模式定位装环境、改配置、跑评价分析本实验全部——CPU 光线追迹量小完全够用渲染和训练才需要有卡conda vs pip无卡模式 conda 解元数据会被 OOM 杀Killed用 piparia2 预分配陷阱ls显示的 4.5 GB 是预分配大小实际进度看.aria2控制文件删残留要 zip 和.aria2一起删Zenodo 大文件策略source /etc/network_turboaria2c -x 816 并发易触发 503或本地下载 AutoDL 网盘中转4.5 GB 包推迟到 E4 前再取。七、下一步E2 课程动力学前置实例切换有卡模式3090 性价比优于 4090约 ¥1.3/h本批主机 GPU 占满时可用克隆实例迁移数据盘保留命令tmux new -s e2后跑python 1_autolens.pycurriculum 2000 iter refine 3000 iter预计 40 min–2 h¥1.5–3观察重点每次 FoV/F# 规格切换前后 100 iter 的损失曲线与镜头剖面变化——对应论文 Fig.1 的结构演化产出预期逐阶段剖面快照 →ffmpeg -framerate 2 -pattern_type glob -i step_*.png lens_evolution.gif拼演化动图作为公众号笔记素材验收RMS 是否收敛到 cellphone.json 量级4–6 μm。附录 A执行命令清单# 环境验证python-cimport torch; print(torch.__version__, torch.cuda.is_available())# 克隆GitHub 慢时先 source /etc/network_turbogitclone https://github.com/AI4Optics/AutoLens.git# 补丁一r_sensor 字段见 3.1 节 Python 片段# 补丁二测试图mkdir-pdatasets/chartscpdatasets/resolution_chart1.png datasets/charts/NBS_1963_1k.png# 运行python 0_hello_deeplens.py# 结果定位find~-name*.png-newermt2026-10-07-execls-lh{}\;附录 B资产路径速查资产路径状态E1 剖面图~/AutoLens/lens.png✅ 已产出补丁后镜头~/AutoLens/datasets/lens_zoo/cellphone.json✅论文 PDF本地H:\zj\Curriculum Learning\Curriculum Learning .pdf参考Zenodo 4.5 GB 包zenodo.org/records/8358592⏸ 推迟至 E4附录 C自查清单能说出 RMS spot radius 的含义与论文中的角色评价用非损失函数——损失是图像域 MSE亲手加载论文设计产物并复现其评价指标结果可复现两次运行一致记录了全部坑与修法渲染仿真图待有卡模式与 E2 合并