可控源二维正反演实战:Kerry Key源程序编译、网格设计与反演调参避坑指南
简介本资源为Kerry key可控源有限元二维正反演源程序及编译方法面向地球物理电磁法研究人员、研究生与工程师用于CSEM与MT数据的正演模拟和反演成像。程序基于MATLAB与有限元法实现包含正演模型、反演优化模块及示例数据可帮助读者理解地下电阻率结构的求解流程。压缩包共约2000个文件以f、c源码与html文档为主辅以m脚本、h头文件、makefile编译配置、dat数据、poly与tri网格文件、emdata与mtx矩阵数据等整体约30.01MB目录结构完整便于按模块查阅与二次开发。已有1447人学习下载。资源提供从源码到编译配置的完整工程读者可据此搭建MATLAB或Octave环境运行示例模型掌握MEX编译、网格设置与参数调整等关键环节为可控源电磁法二维正反演研究提供可复用的代码基础与排错参考。1. 可控源二维正反演从 Kerry key 这套源程序说起做电磁法勘探的人迟早会撞上二维正反演这道坎。一维反演跑得快但遇到断层、岩脉、起伏地形就彻底失真三维反演精度够可网格一铺开单机内存直接爆掉迭代一轮动辄几小时。二维可控源电磁法正反演正好卡在中间——它能把走向方向的异常体刻画出来计算量又控制在普通工作站能扛住的范围内。Kerry Key 这套可控源二维正反演源程序就是这条技术路线上被反复引用的一套实现它把有限元正演和反演迭代串成了一条完整链路配套的编译方法决定了你能不能在自己的机器上把它跑起来。这篇笔记面向两类人一类是刚拿到源码、卡在编译和网格配置上的新手另一类是跑通了正演、但反演一直不收敛、想搞清楚参数边界的老手。我会把源码结构、编译链路、网格设计、反演参数和踩坑记录一层层拆开让你照着能复现改参数时心里有数。2. 有限元二维正演网格、边值和场值求解怎么落地2.1 为什么可控源二维问题要用有限元而不是积分方程可控源电磁法的场源是人工发射的频率、收发距、源的类型都可控这带来一个直接后果场在源附近变化极剧烈衰减又快。积分方程法在均匀或层状背景里精度高但它要求背景格林函数解析可得一旦地下结构复杂、地形起伏背景场本身就不好写。有限元法的优势在于它对复杂几何和电性分布的适应性——把计算区域剖分成单元每个单元内电性参数可以独立设置地形起伏直接体现在网格节点坐标上不需要额外的解析处理。二维问题里通常假设走向方向无限延伸通过沿走向做傅里叶变换把三维问题降成一系列二维波数域问题。每个波数对应一个二维边值问题解完之后再反变换回空间域。Kerry Key 这套程序的核心思路就是对每个频率、每个波数组装有限元刚度矩阵施加边界条件求解稀疏线性方程组得到波数域场值最后叠加出物理场。这里有个容易忽略的点二维降维不是免费的。走向方向无限延伸的假设意味着它无法处理走向有限的异常体比如一个孤立的矿体。如果你的目标体走向长度和测线长度可比二维结果会系统性偏大或偏小。常见做法是先用二维快速扫一遍再用三维局部细化验证。2.2 网格剖分从区域尺寸到单元增长的四个关键参数网格是正演精度的第一道闸门。剖得太粗场值失真剖得太细矩阵规模爆炸。Kerry Key 程序里网格通过输入文件控制核心参数有四个区域总尺寸、核心区尺寸、单元增长率和边界层数。区域总尺寸决定了边界离源和异常体多远。边界太近人为截断会反射虚假场边界太远单元数浪费。经验上区域边界到最远收发点的距离应大于该频率下趋肤深度的三到五倍。趋肤深度公式是import numpy as np def skin_depth(freq, sigma, mu04e-7 * np.pi): 计算趋肤深度 freq: 频率 Hz sigma: 电导率 S/m mu0: 真空磁导率 返回趋肤深度 m omega 2 * np.pi * freq return np.sqrt(2.0 / (omega * mu0 * sigma)) # 示例10 Hz0.01 S/m 的均匀半空间 d skin_depth(10, 0.01) print(f趋肤深度约 {d:.1f} m)这段代码算的是均匀半空间的趋肤深度实际介质不均匀时取最导电层的值作为保守估计。区域边界距离一般取 3 到 5 倍趋肤深度频率越低区域要铺得越大。核心区尺寸覆盖你关心的异常体和主要收发区域这一片用均匀细网格。核心区之外单元尺寸按几何级数增长增长率通常取 1.2 到 1.5。增长率太大相邻单元尺寸跳变剧烈刚度矩阵条件数变差增长率太小边界层数不够区域铺不开。边界层数一般 10 到 20 层配合增长率把区域推到目标尺寸。提示网格生成后先跑一个均匀半空间模型把数值解和解析解对比。如果相对误差在 1% 以内网格基本合格超过 5%先调核心区分辨率和增长率别急着跑复杂模型。2.3 边值条件与线性方程组求解二维波数域问题的控制方程是亥姆霍兹型方程边界条件通常用狄利克雷条件强制场值为零或者用吸收边界条件减少反射。Kerry Key 程序里默认用零场边界配合足够大的区域来压制边界效应。如果你把区域缩得比较紧可以改用吸收边界但实现上要多写一层衰减项对新手不友好。组装完刚度矩阵后得到一个大型稀疏复线性方程组。求解器选择直接影响速度。小规模问题用直接求解器稳定但内存吃紧大规模问题用迭代求解器省内存但可能不收敛。常见做法是网格节点数在几万以内用直接求解超过十万换迭代求解并配合预条件子。# 典型正演运行命令示意具体可执行名以你本地编译产物为准 ./csem2d_fwd -i model.in -f 1.0 -n 4 -o data.out参数说明-i指定模型输入文件里面包含网格和电性参数-f指定起始频率-n指定频率个数程序按对数等间隔展开-o指定输出数据文件。运行前确认输入文件里的网格参数和频率范围匹配频率超出网格设计范围会导致精度骤降。正演跑完后输出的是每个测点、每个频率的场值。先检查场值随收发距的衰减曲线是否单调、平滑。如果出现跳变或负值多半是网格在源附近太粗或者边界反射污染了结果。3. 反演迭代目标函数、雅可比和正则化怎么配3.1 反演目标函数的三个组成部分反演的本质是找一个地下电性模型让正演响应和观测数据匹配同时模型本身不要太离谱。目标函数通常写成三部分之和数据拟合项、模型正则化项、以及可能的先验约束项。数据拟合项衡量正演数据和观测数据的差距用加权残差平方和表示权重取数据噪声方差的倒数。噪声估计不准反演结果会系统性偏移——噪声估大了反演欠拟合异常体幅度被压低噪声估小了反演过拟合模型里全是高频抖动。正则化项控制模型的光滑度或复杂度。常见的是 Tikhonov 正则化对模型参数的梯度或拉普拉斯算子做惩罚。正则化因子越大模型越光滑异常体边界越模糊因子越小模型越锐利但容易引入虚假结构。Kerry Key 程序里正则化因子通过输入文件给定可以设成固定值也可以设成随迭代下降的策略。新手建议先用固定值跑几轮观察数据拟合差下降曲线再决定是否调整。3.2 雅可比矩阵的计算与存储反演迭代需要雅可比矩阵也就是正演响应对模型参数的偏导数。计算雅可比有两种主流方式一种是解析法利用伴随方程一次正演加一次伴随求解就能得到全部偏导数另一种是扰动法对每个参数做微小扰动重新正演计算量大但实现简单。Kerry Key 程序采用伴随方程法效率高但要求正演代码里保留伴随求解的接口。如果你自己改代码注意别把伴随求解的边界条件写错否则雅可比矩阵会系统性偏差反演方向就歪了。雅可比矩阵的存储也是坑。参数多、数据多的时候稠密存储直接爆内存。程序里一般用稀疏存储或隐式矩阵向量乘不显式组装完整雅可比。你如果要做大规模反演务必确认这一块用的是稀疏格式。# 反演迭代主循环示意 for it in range(max_iter): # 正演计算当前模型的响应 d_pred forward(model) # 计算数据残差 residual (d_obs - d_pred) / noise # 计算目标函数 misfit np.sum(residual**2) / ndata # 判断收敛 if misfit target_misfit: break # 计算雅可比矩阵伴随法 J compute_jacobian(model, d_pred) # 求解反演方程更新模型 delta_m solve_inversion(J, residual, reg_factor) model model step_length * delta_m这段循环里target_misfit一般设成 1.0表示数据拟合差降到噪声水平。step_length是步长太大容易震荡太小收敛慢。常见做法是先用 1.0如果目标函数不降就减半。3.3 正则化因子和步长的调参经验正则化因子和步长是反演里最需要手感的两类参数。正则化因子控制模型复杂度步长控制每次更新的幅度。我的经验是第一轮反演正则化因子取大一点让模型先光滑地拟合上主要异常第二轮减小因子让异常体边界清晰起来。步长方面如果目标函数连续两轮不降先把步长减半如果还不行检查雅可比矩阵和数据权重。注意反演不收敛八成不是算法问题而是数据噪声估计、网格分辨率或初始模型的问题。先排查这三项再动正则化因子。4. 编译链路从源码到可执行文件的完整步骤4.1 依赖环境与编译器选择Kerry Key 这套程序通常用 Fortran 编写依赖 BLAS、LAPACK 和稀疏求解库。编译前先确认三件事Fortran 编译器版本、数学库路径、并行环境如果用了 MPI。编译器推荐用 gfortran版本不要太老至少支持 Fortran 2003 标准。数学库可以用系统自带的也可以自己编译 OpenBLAS。如果程序里用了 MPI 做频率并行还要装 MPI 实现比如 OpenMPI 或 MPICH。# 检查编译器版本 gfortran --version # 检查 MPI 是否可用 mpif90 --version # 检查 BLAS/LAPACK 链接 ldconfig -p | grep -E blas|lapack这三条命令跑完环境基本清楚了。如果ldconfig找不到 BLAS需要手动指定库路径或者在编译脚本里加-L和-l选项。4.2 Makefile 关键变量与编译命令程序一般带一个 Makefile核心变量有编译器名、编译选项、库路径和可执行文件名。编译选项里优化级别和调试信息要权衡-O2兼顾速度和稳定性-O3可能触发激进优化导致数值异常-g加调试信息方便排错但会拖慢速度。# Makefile 关键变量示意 FC mpif90 FCFLAGS -O2 -fcheckbounds -fbacktrace LIBS -lopenblas -llapack OBJS main.o forward.o inverse.o mesh.o TARGET csem2d $(TARGET): $(OBJS) $(FC) $(FCFLAGS) -o $(TARGET) $(OBJS) $(LIBS) %.o: %.f90 $(FC) $(FCFLAGS) -c $ -o $-fcheckbounds打开数组越界检查调试阶段很有用正式跑大规模反演时去掉能省不少时间。-fbacktrace让程序崩溃时打印调用栈定位问题快。编译命令就是make如果报错找不到某个.mod文件说明模块编译顺序不对调整 OBJS 列表里的顺序被依赖的模块排前面。4.3 编译报错的四类常见原因第一类找不到头文件或模块文件。原因是 include 路径或模块搜索路径没设对。解决在 FCFLAGS 里加-I指定路径。第二类链接时报未定义符号。原因是库没链上或者库的顺序不对。解决把数学库放在目标文件后面-l的顺序按依赖关系从高到低排。第三类数组越界或内存错误。原因是代码里有 bug或者编译选项太激进。解决加-fcheckbounds重新编译跑一个小模型复现看崩溃点在哪。第四类MPI 相关报错。原因是 MPI 库版本和编译器不匹配。解决用mpif90而不是gfortran编译确保 MPI 库和编译器是同一套工具链编出来的。5. 避坑与排查反演跑飞、正演失真、编译失败的现场记录5.1 反演数据拟合差降到 1 以下但模型完全不对现象反演迭代几十轮数据拟合差确实降到了 1 附近但反演出来的模型和真实结构差很远异常体位置偏移、幅度失真。原因数据权重给错了。噪声估计过大反演把真实异常当成噪声压掉了或者测点坐标和模型网格没对齐正演响应和观测数据在空间上错位。解决重新检查数据文件的坐标系统确认测点位置和网格节点对应。噪声估计用实际数据的重复测量误差或残差统计别拍脑袋给一个值。5.2 正演场值在源附近出现非物理震荡现象正演结果里源附近的场值出现高频震荡甚至符号跳变。原因源附近的网格太粗场的高频分量没被解析出来。或者源的处理方式不对点源直接放在节点上没有做奇异性处理。解决在源附近局部加密网格单元尺寸小于趋肤深度的十分之一。如果程序支持把源放在单元内部而不是节点上减少奇异性影响。5.3 编译通过但运行时报段错误现象make成功可执行文件生成了但一跑就段错误没有任何输出。原因栈内存溢出或者数组维度声明和实际使用不匹配。Fortran 里大数组默认放栈上栈空间不够就崩。解决编译时加-fmax-stack-var-size把大数组赶到堆上或者用ulimit -s增大栈空间。同时检查输入文件的网格维度是否和代码里声明的最大维度一致。5.4 反演迭代震荡目标函数忽上忽下现象目标函数不单调下降而是上下震荡模型参数来回跳。原因步长太大或者雅可比矩阵计算有误。正则化因子太小也会导致震荡。解决先把步长减半观察目标函数是否变单调。如果还震荡把正则化因子调大。最后检查雅可比矩阵的伴随求解边界条件是否和正演一致。5.5 频率并行时结果和单进程不一致现象用 MPI 多进程跑频率并行结果和单进程跑出来的对不上。原因频率之间的数据归约没做对或者某个进程的输出被覆盖了。解决检查 MPI 归约操作的代码确认所有频率的结果都正确汇总到主进程。输出文件用频率或进程号区分别让多个进程写同一个文件。6. 进阶技巧用灵敏度矩阵快速判断异常体可分辨性跑完反演拿到模型很多人就停了。其实还有一步很值用灵敏度矩阵判断哪些区域的异常体是真正被数据约束住的哪些只是正则化光滑出来的假象。灵敏度矩阵就是雅可比矩阵的转置乘以数据权重再乘以雅可比。它反映的是每个模型参数对数据的敏感程度。灵敏度高的区域反演结果可信灵敏度低的区域模型值基本是正则化在主导别当真。# 计算灵敏度矩阵并可视化 import numpy as np def compute_sensitivity(J, W): J: 雅可比矩阵 (ndata x nparam) W: 数据权重矩阵 (ndata x ndata)对角阵 返回灵敏度矩阵 (nparam,) # 加权雅可比 Jw W J # 灵敏度为列向量的二范数平方 sens np.sum(Jw**2, axis0) return sens # 假设 J 和 W 已经算好 sens compute_sensitivity(J, W) # 把 sens 映射回网格画出来 # 高灵敏度区域用暖色低灵敏度区域用冷色这段代码算的是每个模型参数的灵敏度。实际用的时候把灵敏度值映射回二维网格画成图。高灵敏度区域集中在源和测点之间、以及异常体附近边界和深部区域灵敏度低反演结果不可信。我一般会把这个图和反演模型叠在一起看如果异常体落在高灵敏度区域说明数据确实约束住了它如果异常体落在低灵敏度区域那它很可能是正则化造出来的需要补充数据或者调整测线布置。还有一个技巧用不同初始模型跑反演看结果是否收敛到同一结构。如果两次结果差异很大说明数据约束不足灵敏度分析能帮你找到问题区域。提示灵敏度矩阵的计算量不大反演跑完后顺手算一下能省掉很多误判。别把正则化的光滑当异常。我自己踩过最深的坑是早期跑反演只看数据拟合差拟合差降到 1 就以为成了结果模型和钻孔对不上。后来养成习惯每次反演完先看灵敏度图再决定这个模型能不能用。这个习惯帮我省了至少三次返工。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

UE5类型转换Casting:避开常见陷阱与性能优化实践

UE5类型转换Casting:避开常见陷阱与性能优化实践

做 UE5 开发&#xff0c;类型转换&#xff08;Casting&#xff09;基本是每天都要碰的操作&#xff0c;蓝图里拖一个 Cast To&#xff0c;C 里写一个Cast<T>()&#xff0c;看起来都挺简单。但很多网上教程教的 Casting 写法&#xff0c;其实是“Demo 能跑、实战就崩”的错…

2026/10/15 20:55:41 阅读更多 →
AiBrainBox--面向高危作业空间安全智能节点Spatial AI Safety:感知 → 定位 → 识别 → 关联 → 空间理解 → 风险推理 → 主动干预

AiBrainBox--面向高危作业空间安全智能节点Spatial AI Safety:感知 → 定位 → 识别 → 关联 → 空间理解 → 风险推理 → 主动干预

AiBrainBox--面向高危作业空间安全智能节点Spatial AI Safety&#xff1a;感知 → 定位 → 识别 → 关联 → 空间理解 → 风险推理 → 主动干预 AiBrainBox-S 设备应该能够&#xff1a; 脱离云平台独立完成核心安全判断。 也就是即使&#xff1a; 没有网络 没有5G 没有服务器…

2026/10/14 18:36:56 阅读更多 →
金属板材校平工艺与应力控制关键技术解析

金属板材校平工艺与应力控制关键技术解析

1. 金属板材变形与应力释放的本质金属板材在轧制、切割、焊接等加工过程中&#xff0c;内部会产生复杂的残余应力分布。这种应力就像一张无形的网&#xff0c;束缚着金属的"筋骨"。当板材离开加工设备后&#xff0c;这些应力会逐渐释放&#xff0c;导致板材出现波浪形…

2026/10/15 18:49:17 阅读更多 →

最新新闻

具身智能中的协同机理研究(107):双引擎并行实现毫秒级精确控制

具身智能中的协同机理研究(107):双引擎并行实现毫秒级精确控制

前沿技术探索:TVA智能体(简称TVA) TVA智能体(亦称“AI智能体视觉”)是依托Transformer架构与“因式智能体”理论构建的新型工业视觉系统,也是当前最具代表性的具身视觉技术之一。它有机融合深度强化学习(DRL)、卷积神经网络(CNN)与因式分解算法(FRA),构成了具身智…

2026/10/15 20:54:55 阅读更多 →
foobox-cn 完整上手指南:给 foobar2000 换一套现代化中文界面

foobox-cn 完整上手指南:给 foobar2000 换一套现代化中文界面

foobox-cn 完整上手指南&#xff1a;给 foobar2000 换一套现代化中文界面 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 如果你也遇到这种情况&#xff1a;foobar2000 解码稳、格式全&#xff0c;可…

2026/10/15 20:54:55 阅读更多 →
Samba文件服务器安全(1)

Samba文件服务器安全(1)

在企业 IT 基础设施中,Samba 文件服务器往往扮演着"沉默的枢纽"角色——它让 Windows 客户端能够无缝访问 Linux 上的共享目录,让 Active Directory 域中的用户凭同一套身份凭证读写文件。然而,正是这种跨平台桥接能力,使 Samba 服务器成为网络安全链条上最容易被…

2026/10/15 20:54:55 阅读更多 →
大模型人才报告解读:岗位图谱、技能栈与能力培养路径

大模型人才报告解读:岗位图谱、技能栈与能力培养路径

简介&#xff1a;由中国软件行业协会发布的《2024人工智能大模型的技术岗位与能力培养研究报告》&#xff0c;围绕大模型引发的岗位变革与人才需求展开&#xff0c;适合想进入AI大模型方向的开发者、在校学生以及负责技术团队建设与课程规划的管理者阅读。资料为单个PDF文件&am…

2026/10/15 20:54:55 阅读更多 →
深海数据中心测试:从故障注入到代码生存的实操指南

深海数据中心测试:从故障注入到代码生存的实操指南

接到“深海数据中心测试”这个任务时&#xff0c;团队里一度以为是在整活。把装了几十台服务器的标准机柜塞进耐压舱体&#xff0c;沉到几十米深的海床上&#xff0c;让它以接近工业级可靠性的标准连续运行——这个听起来有点科幻片味道的项目&#xff0c;其实催生了一连串极其…

2026/10/15 20:54:55 阅读更多 →
CentOS 8.2 自建 NextCloud 私有云盘:LNMP 环境搭建与优化实战

CentOS 8.2 自建 NextCloud 私有云盘:LNMP 环境搭建与优化实战

1. 为什么我选择在 CentOS 8.2 上自建 NextCloud把时间倒回几年前&#xff0c;我第一次接触网盘类工具的时候&#xff0c;用的还是各种公有云服务。免费额度小、上传下载限速、文件格式被审查、分享链接随时失效&#xff0c;这些痛点想必你也遇到过。后来我开始琢磨&#xff1a…

2026/10/15 20:53:54 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时&#xff0c;网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上&#xff0c;依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里&#xff0c;扩缩容到底难在哪做过大模型推理服务部署的人&#xff0c;大概都经历过这样的场景&#xff1a;一个团队共用一套推理集群&#xff0c;A 业务跑的是 7B 的小模型&#xff0c;B 业务跑的是 72B 的大模型&#xff0c;C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子&#xff1a;一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减&#xff0c;为了把启动时间压进两秒以内&#xff0c;我手贱地把一串自认为“没用”的 systemd 服务给 disable 了&#xff0c;其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →