LassoCV完整指南:用交叉验证自动选择最佳正则化参数alpha
先交代一个问题很多人用 Lasso 的时候习惯先拍一个正则化参数 alpha比如 0.01、0.1然后看效果效果不好再换一个。这么调十几次运气好能碰到一个还能用的模型运气不好就是白忙一晚上。带交叉验证的 LassoCV 就是来解决这件事的——它把 alpha 的选择变成一个自动化过程用交叉验证去评估每个候选 alpha 的泛化能力最后直接告诉你哪个值最稳。这篇东西就把 LassoCV 的原理、关键参数、完整流程和常见坑一次讲透适合已经跑过 sklearn 回归但还没系统用过 CV 版的人。1. Lasso 回归到底在解决什么问题1.1 线性回归的过拟合与特征选择困境普通线性回归的目标很直白找一组系数让预测值和真实值之间的平方误差最小。但问题在于当特征数量很多、样本量又不够大的时候模型会拼命记住训练集里的细节包括噪声。结果就是训练集上 R² 很好看一到新数据上就开始崩。这就是过拟合。早期团队里搞过一个特征数几百、样本数几十的小项目直接跑线性回归系数乱七八糟有的特征系数大到离谱有的又互相抵消。谁都不敢拿这种模型上线。更麻烦的是线性回归不会帮你做特征筛选它只会把所有特征都塞进模型里不管这特征是不是真的有解释力。所以实际场景里我希望模型自己把那些无关紧要的特征权重压下去甚至直接变成 0。1.2 L1 正则化是怎么让系数归零的Lasso 的全称是 Least Absolute Shrinkage and Selection Operator它在线性回归的损失函数里加了一项所有系数绝对值之和也就是 L1 惩罚项。损失函数从纯粹的均方误差变成了MSE alpha * sum(|beta|)这里的 alpha 就是正则化参数控制惩罚力度。alpha 越大模型越不愿意让系数保持较大的绝对值导致越来越多的系数被压缩到接近 0 甚至精确等于 0。为什么 L1 能产生精确的 0而 L2岭回归用的那种平方和惩罚只能把系数压缩到很小但不能归零一个直观理解是L2 惩罚让系数平滑地变小像把一堆沙往中间推L1 惩罚形成的约束区域有尖锐的棱角最优解容易落在棱角上这个棱角对应的坐标轴方向就是某些系数正好为 0 的位置。我习惯用坐标轴去记这件事L1 的约束是一个菱形菱形的最优接触点经常在顶点顶点正好让一个或几个系数归零。这让 Lasso 天然成为线性模型里的特征选择工具。1.3 alpha 不是拍脑袋拍的它决定稀疏度和误差的平衡在很多实际项目里alpha 是唯一需要认真调的东西。选得太小Lasso 退化成接近普通线性回归过拟合问题照旧选得太大模型会过度稀疏把所有特征都削成 0只留下一个截距项预测能力也就没了。所以 alpha 本质上是模型复杂度和预测误差之间的一个旋钮。问题是怎么知道该拧到哪儿。手动试的话我一般会先按数量级试0.001、0.01、0.1、1、10。但这样做有两个明显的毛病第一靠肉眼比较 R² 和系数个数判断标准很模糊第二每个 alpha 都要自己跑一遍交叉验证代码冗长不说如果数据预处理没统一比较出来的结果根本没有意义。这就是 LassoCV 出现的理由。它把“候选 alpha 生成 交叉验证评估”打包成一步用一套标准流程替你把最佳 alpha 找出来。2. 手动调 alpha 为什么不行LassoCV 到底做了什么2.1 手动网格搜索的三个坑手动网格搜索不是不行而是容易在细节上翻车。先说第一个坑评估指标不统一。我最初调参的时候喜欢用训练集 R² 判断后来发现训练集 R² 随着 alpha 减小一路走高总觉得模型越调越好换到验证集就完全不是一回事。改用验证集评估后又因为划分方式不固定每次对比都带着随机误差很难判断两个接近的 alpha 到底谁更好。第二个坑是候选范围靠猜。alpha 的最优值跟数据本身的尺度有关特征量级不同合适的 alpha 可能相差几个数量级。我见过有人固定从 0.01 到 1 里选结果真实最优值在 0.001 到 0.01 之间整个搜索区间都没覆盖到。第三个坑是计算资源的浪费。手动跑多个 alpha 的话每次都要重新做一次训练和预测。如果数据量稍大哪怕单个 Lasso 很快几十个 alpha 叠起来也很耗时。而 LassoCV 里有一套路径算法能一次性计算出整条系数路径上的多组解性能上远比手动循环好。2.2 交叉验证的基本思路交叉验证的本质是把训练数据切成几份轮流拿其中一份当验证集其余当训练集最终用各轮验证误差的平均值来衡量某个 alpha 的泛化表现。LassoCV 默认用的是 K 折交叉验证。假如 cv5数据会被分成 5 份每次拿 4 份训练、1 份验证跑 5 轮每一份数据都有机会当一次验证集。最后把 5 轮误差平均得到一个稳定评分。这么做相比单次划分验证集的好处很明显单次划分结果受随机性影响太大如果划分恰好让验证集分布不均评分就会失真。交叉验证等于把随机性平均掉选择结果更可信。2.3 LassoCV 的候选 alpha 路径机制LassoCV 内部并不是盲目地在某个范围里均匀取样而是通过坐标下降法沿正则化路径计算出一组候选 alpha然后对这些候选逐一做交叉验证。说人话就是它从大到小扫描 alpha对每个 alpha 都计算系数路径然后结合交叉验证给出误差曲线。最终模型选的是交叉验证误差最小的 alpha如果参数 selection 设置成 “random”模型还会在误差均值上下一个标准差的最小值里做选择这是为了防止过度追求极小值而过拟合。这一点在很多教程里被忽略但其实非常关键。LassoCV 不只是帮你跑了个交叉验证它连 alpha 候选集都帮你生成好了你要做的只是把 max_iter 和 cv 这种参数设置合理。3. 用 LassoCV 选择最佳正则化参数完整实操3.1 数据准备与预处理顺序用一个模拟的回归数据集做演示重点看流程。import numpy as np import pandas as pd from sklearn.datasets import make_regression from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LassoCV from sklearn.metrics import mean_squared_error X, y make_regression( n_samples300, n_features30, n_informative10, noise0.05, random_state42 ) X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42 )预处理这一步很容易出问题。Lasso 对特征的量纲敏感别把标准化放在划分数据集之前。正确做法是先划分训练集和测试集再在训练集上拟合标准化器然后分别转换训练集和测试集。scaler StandardScaler() X_train_scaled scaler.fit_transform(X_train) X_test_scaled scaler.transform(X_test)顺序对不上会引入信息泄漏如果先在整个数据集上做标准化再划分那测试集的信息其实已经参与了训练过程评估结果会比真实落地场景乐观上线后成绩缩水是必然的。这个坑我踩过后来每次写预处理都要先划分再标准化。3.2 核心调用与关键参数选择接下来是 LassoCV 的核心调用。lasso_cv LassoCV( eps0.001, n_alphas100, cv5, max_iter100000, random_state42 ) lasso_cv.fit(X_train_scaled, y_train)这里几个参数值得单独说。eps 控制 alpha 路径的最小值与最大值的比例默认是 0.001意味着路径会扫描到最大 alpha 的千分之一。n_alphas 是候选 alpha 的个数默认 100数据量大时可以调大一点让路径更细。cv 是交叉验证折数小型数据集用 5 或 10 都行数据量小的时候折数太多会让每一折的训练集过小方差反而变大。max_iter 是坐标下降的最大迭代次数如果收到收敛警告就要调大。random_state 固定随机性让复现结果一致。3.3 从训练结果里提取最佳 alpha 和哑变量拟合完以后最关心的几个属性是best_alpha lasso_cv.alpha_ best_score lasso_cv.score(X_test_scaled, y_test) print(Best alpha:, best_alpha) print(Test R2:, best_score) print(Number of nonzero coefficients:, int(np.sum(lasso_cv.coef_ ! 0)))alpha_ 就是模型最终选出来的最佳正则化参数。coef_ 是此时各特征的系数其中等于 0 的特征就是被 Lasso 剔除的特征。可以配合 pandas 把系数和特征名对应起来看feature_names [ffeature_{i} for i in range(X.shape[1])] coef_df pd.DataFrame({ feature: feature_names, coef: lasso_cv.coef_ }) coef_df coef_df.sort_values(coef, keylambda col: col.abs(), ascendingFalse) print(coef_df.head(15))很多人在这一步会踩一个坑训练时用的是标准化之后的特征所以 coef_ 反映的标准化的尺度。要解释回原始量纲就得把系数除以对应特征的标准差或者干脆用标准化前的系数重新拟合一次。如果只是做预测和筛选用标准化后的系数即可。3.4 可视化交叉验证误差曲线判断 LassoCV 是否选得靠谱最直接的方式是看 alpha 路径图。import matplotlib.pyplot as plt plt.figure(figsize(8, 5)) plt.plot(lasso_cv.alphas_, lasso_cv.mse_path_.mean(axis-1), labelCV MSE) plt.axvline(lasso_cv.alpha_, linestyle--, colorred, labelBest alpha) plt.xscale(log) plt.xlabel(alpha) plt.ylabel(Mean squared error) plt.legend() plt.show()mse_path_ 是一个二维数组形状为 (n_alphas, n_folds)记录了每个 alpha 在每一折上的均方误差。平均值最低的位置就是最优 alpha 附近。看这张图有两个好处一是确认 alpha 的选择区间是否覆盖了最低点如果最低点在路径边缘说明 eps 或者 n_alphas 设置不合适需要扩大搜索范围二是看曲线是否平坦如果最低点左右两条曲线的差距非常小说明 alpha 在一定范围内都不敏感这时候可以选更大的 alpha 换取更强的稀疏性。下图不是必须的但线上说明文档里这张图通常比一长串数字更能说服人。4. 实际跑 LassoCV 时遇到的常见问题与排查4.1 收敛警告坐标下降没有走完用默认 max_iter 跑大特征集时经常收到类似 “ConvergenceWarning: Objective did not converge” 的提示。这个问题的直接原因是迭代次数不够坐标下降算法还没找到足够好的解就被强制停了。遇到这个情况第一反应是把 max_iter 调大比如从 1000 调到 50000。如果调大之后警告消失说明只是迭代次数不足。如果警告还在那要检查特征是否有极端异常值或者特征标准化的过程中有没有产生 NaN 或无穷大。我试过一次数据里混进了一个异常大的值标准化之后标准差被拉高很多特征变成微小数值坐标下降在数值上就变得非常不稳定。先做异常值截断再标准化整个训练就顺畅了。4.2 数据标准化、缺失值和哑变量的处理顺序先处理缺失值再标准化是基本原则。缺失值如果在标准化之后才补填充值的位置会产生偏差。尤其是用均值填充的时候标准化后的均值是 0填充值会直接落在均值位置倒是没太大问题但用中位数或者其他方式填充标准化前后的结果就会不一样。更需要注意的是哑变量编码。分类型特征经过 one-hot 编码后如果再做标准化每一列只有 0 和 1标准化后会出现正负值这会破坏编码的稀疏结构。我的做法是数值型特征标准化哑变量保持 0/1 不参与标准化最后归一化特征矩阵时用列合并。sklearn 里可以用 ColumnTransformer 来控制不同列使用不同的预处理流程。4.3 交叉验证结果的随机性和稳定性LassoCV 的交叉验证结果不是百分之百稳定的原因在于每折数据划分的随机性。同样一份数据cv5 但 random_state 不同选出的 alpha 可能略有差别。如果项目对稳定性要求高我通常会把 random_state 固定成一个值用于复现同时把 cv 设置为 10 或者更多折折数越多评估均值越稳定。另一种做法是重复多次 LassoCV 并观察 alpha 的分布如果几次结果都在同一个数量级那这个 alpha 区间基本可信如果分布极分散数据量太小或者特征噪声太大单纯调 alpha 已经救不了模型。4.4 稀疏结果是不是永远更好Lasso 把很多系数变成了 0看起来模型变精简了但稀疏度高不等于预测好。有些场景里特征之间的共线性比较强Lasso 可能随机选中其中一个相关特征剔除另一个导致系数不稳定。这个时候可以回退看下岭回归的结果或者用 ElasticNet 这种同时包含 L1 和 L2 惩罚的模型它在稀疏性和稳定性之间取了一个折中。我的经验是如果 Lasso 选出的特征每次跑都不太一样优先怀疑数据里有强相关特征组而不是 alpha 设置不合理。5. 让 LassoCV 结果更稳的几个工程细节5.1 用信息准则做交叉验证的互补验证交叉验证不是唯一的选择标准还可以用 BIC 或 AIC 来辅助判断。sklearn 里虽然不直接提供 BIC 计算但可以基于拟合后的 Lasso 路径自己算。思路很简单对每一个候选 alpha取对应系数计算训练集上的对数似然或残差平方和再加上惩罚项。BIC 的惩罚项比 AIC 更重倾向于选择更稀疏的模型。如果交叉验证选出来的 alpha 和 BIC 选出来的 alpha 数量级接近说明这个选择比较可靠如果差得很远就去检查数据划分和预处理环节。我通常在模型选型阶段把这两种方式的结果并排看一眼不需要当成硬指标但能提供额外的信心。5.2 特征量纲与缩放处理的统一之前提到过标准化要在划分之后做还有一个细节是缩放器要保存下来。线上部署时新进来的数据也要用同一个缩放器转换不能重新 fit。保存缩放器的方式很简单用 joblib 或者 pickle 把 StandardScaler 和训练好的 LassoCV 一起打包。我第一次部署时忘了保存缩放器只保存了模型结果线上预测值全部偏差排查半天才发现输入没做同样的标准化。这个错误一点都不高级但确实常见。5.3 先做一次基准线性回归再对比不要一上来就跑 LassoCV。先训练一次普通线性回归记录它的测试集 R² 和均方误差把这个当成基准线。然后跑 LassoCV 和岭回归三家对比。这个习惯的好处是能判断正则化到底有没有带来提升。有些数据集特征本来就少共线性也低普通线性回归已经很好Lasso 强行加惩罚反而降低预测精度。这时选出来的最佳 alpha 可能很小接近于普通回归但至少你知道自己为什么选它。5.4 尝试随机化的 alpha 选择与稳定性分析除了默认的交叉验证LassoCV 还支持 selectionrandom它会基于某条随机化路径选择 alpha而不是单纯选交叉验证误差最小的点。随机化路径的主要作用是在误差曲线比较平坦的时候避免因为数值噪声而选到一个过于复杂的模型。想更稳妥地做稳定性分析我建议对特征数据做 bootstrap 重采样每次跑一次 LassoCV记录被保留的特征集合。重复几十次之后统计每个特征被选中的频率。那些高频率出现的特征才是真正值得信任的核心变量只会偶尔被选中的特征留着不加进来对模型影响也不大。5.5 实际部署时别用训练时的全量数据重训模型调完之后很多人的习惯是用全量数据重新训练一次认为这样能把信息用足。对 LassoCV 来说这个操作要小心。用全量数据重训意味着交叉验证的折内评估结果只适合做 alpha 选择参考最终模型并没有跟着更新。如果你用全量数据重新 fit 一次选定的 alpha 不变但模型的系数会基于全量数据重新估计这没问题。问题在于有些人重训之后又把 LassoCV 的交叉验证评分当成新模型的预期精度这是错的预期精度应该用之前单独的测试集来评估。我一般流程是先用训练集跑 LassoCV 选 alpha再用这个 alpha 在训练集上重新训练一个 Lasso最后在测试集上评估并保存模型。这样既统一了流程也不容易出现评估偏差。6. 一点个人经验项目里选择正则化参数这件事看起来只是调一个数本质上却是在跟过拟合博弈。用过 LassoCV 之后我最大的感受是它把调参变成了一个标准动作省下来的时间可以花在更值得研究的问题上比如特征关系、预处理逻辑、模型部署的稳定性。我踩过最贵的一次坑是换了数据分布却忘了重新交叉验证直接把旧模型的 alpha 拿过来用结果预测偏差大得离谱。后来养成一个习惯只要数据源有变化哪怕只是数据量变了也会重新跑一遍 LassoCV而不是迷信之前的参数。模型永远要跟着数据走这是用过 LassoCV 之后最真实的体会。

相关新闻

Dify接入MCP工具实战:配置、调用与踩坑排查指南

Dify接入MCP工具实战:配置、调用与踩坑排查指南

最近好几个团队都在问我同一个问题:想在 Dify 里接 MCP 工具,但不知道从哪下手。我自己第一次上手的时候也卡过不少时间,等把原理理顺之后发现,Dify 接入 MCP 工具本身并不复杂,真正费劲的反而全是细节——URL 填哪个、…

2026/10/17 3:22:48 阅读更多 →
纵向CT亚区域放射组学列线图预测食管鳞癌放化疗后局部复发

纵向CT亚区域放射组学列线图预测食管鳞癌放化疗后局部复发

1. 食管鳞癌根治性放化疗后,我们其实在被动等待1.1 传统影像评估的"事后诸葛亮"困境食管鳞癌患者做完根治性放化疗,并不是治疗结束后的轻松时刻,而是另一种煎熬的开始。吞咽困难缓解了,复查CT上肿瘤缩小甚至"看不见…

2026/10/17 3:22:48 阅读更多 →
人工智能(八)- Spring AI 开发 MCP Server(Streamable HTTP)完整开发与测试:把 endpoint 改到 TaoToken

人工智能(八)- Spring AI 开发 MCP Server(Streamable HTTP)完整开发与测试:把 endpoint 改到 TaoToken

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

2026/10/17 3:22:48 阅读更多 →

最新新闻

Python计算机二级题库全解析:考纲、刷题技巧与备考误区

Python计算机二级题库全解析:考纲、刷题技巧与备考误区

简介:面向全国计算机二级Python备考人群,这份题库将近年常考知识点与真题题型整理为可直接刷练的练习集,覆盖选择题、操作题等常见考核模块,并配套参考答案与解析,帮助考生在考前快速定位薄弱环节、掌握得分要点。压缩…

2026/10/17 4:03:00 阅读更多 →
AHA-WAM世界模型实战:从RoboTwin数据到Wan权重部署

AHA-WAM世界模型实战:从RoboTwin数据到Wan权重部署

1. 项目概述:为什么“世界模型”不是玄学,而是可落地的机器人认知基座最近在工业自动化和具身智能圈子里,“世界模型”这个词出现频率高得有点吓人——不是那种被PPT反复咀嚼的空泛概念,而是真有人在产线边缘设备上跑通了AHA-WAM推…

2026/10/17 4:03:00 阅读更多 →
PyTorch实现FPN+ResNet:多尺度特征融合的工程实践指南

PyTorch实现FPN+ResNet:多尺度特征融合的工程实践指南

1. 项目概述:为什么FPNResNet这个组合值得深挖“基于PyTorch的ResNet的FPN”——这短短十个字,背后其实是一条被工业界反复验证、在目标检测与实例分割任务中稳坐主力位置的技术路径。我从2018年开始在某高校实验室做遥感图像分析项目时第一次完整复现FP…

2026/10/17 4:03:00 阅读更多 →
基于MP2642GR-Z与STM32F429NI的两串电芯被动均衡BMS设计实战

基于MP2642GR-Z与STM32F429NI的两串电芯被动均衡BMS设计实战

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

2026/10/17 4:03:00 阅读更多 →
Codex正价方案性价比表:用TaoToken统一Key做多模型成本对照

Codex正价方案性价比表:用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/17 4:03:00 阅读更多 →
环境变量全攻略:从原理到实战,避开PATH与配置那些坑

环境变量全攻略:从原理到实战,避开PATH与配置那些坑

说实话,我见过太多人在环境变量上栽跟头了。明明代码逻辑一点问题没有,换台机器跑就报错,最后折腾半天发现是环境变量没配对。环境变量这东西,说简单,十分钟就能学会怎么用;说复杂,它能让你在深…

2026/10/17 4:02:00 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →