Iris数据集实战SVM:软间隔、核函数与交叉验证三要素
简介本资源是一份面向机器学习初学者与课程实践者的Python支持向量机SVM教学实践包聚焦经典Iris鸢尾花数据集的二分类与多分类建模任务完整覆盖算法原理实现、模型训练、评估可视化及实验报告撰写全流程。压缩包共16个文件含2个核心Python源码flower.py、svm_flower.py、1份结构清晰的Word实验报告含方法描述、代码注释、ROC曲线与混淆矩阵分析、7张结果图表PNG格式含分类边界、准确率对比、ROC曲线等以及XML配置、IDEA项目配置iml和Git忽略文件等辅助内容整体仅611KB轻量易部署。已有990人学习下载适合作为高校《机器学习》课程作业参考、SVM算法入门实操范例或SklearnNumPy协同编程练习素材尤其利于理解特征标准化、核函数选择、超参数调优等关键环节的实际处理方式。1. 把 Iris 数据集跑通 SVM 分类不是调个SVC()就完事而是搞懂软间隔、核函数选择、交叉验证三把刀怎么配合切开过拟合你写完from sklearn.svm import SVCmodel.fit(X, y)model.score(X_test, y_test)得到 98% 准确率就真以为自己会 SVM 了别急——这份西电/山大/头歌风格的机器学习大作业源码包含svm_flower.pyflower1.py 完整.docx实验报告 ROC 曲线图恰恰卡在「能跑通」和「真懂为什么这么调」之间。它用最经典的 Iris 鸢尾花数据集3 类、4 特征、150 样本逼你亲手调C、试kernel、画decision boundary、算confusion matrix还强制你做 5 折交叉验证和 ROC 分析。这不是玩具代码是能直接塞进课程设计答辩 PPT 的实战脚手架所有绘图用matplotlib原生实现不依赖 seaborn所有数据预处理用numpy手动归一化没用StandardScaler黑盒连gamma参数都让你手动网格搜索。适合刚学完《机器学习》周志华第 6 章、正在啃吴恩达 SVM 课后题、或被头歌平台“决策树分类”刷屏后想换赛道练手的本科生——你缺的不是理论是把C1.0改成C100.0后模型突然崩掉时一眼看出是软间隔失控的直觉。2. 从 raw data 到 decision boundaryIris 数据集加载、特征工程与 SVM 模型构建全流程拆解2.1 Iris 数据集加载与结构验证为什么必须手动检查 shape 和 class distributionIris 数据集虽小但新手常栽在「默认加载即可用」的错觉里。这份源码包里的svm_flower.py并未直接调sklearn.datasets.load_iris()而是用numpy.loadtxt()或pandas.read_csv()需自行补全路径读取本地iris.csv若无则用sklearn内置数据生成。关键在于验证三件事样本维度是否为 (150, 4)X.shape必须是(150, 4)否则后续 reshape 会报ValueError: Found array with dim 3标签是否为 0/1/2 整数编码np.unique(y)应返回[0 1 2]若为字符串如setosaSVC会静默失败类别是否均衡np.bincount(y)应为[50 50 50]若某类缺失如只取前 100 行classification_report会因precision分母为 0 报undefined。import numpy as np from sklearn import datasets # 正确加载方式兼容源码包结构 iris datasets.load_iris() X, y iris.data, iris.target print(f原始数据形状: {X.shape}) # 输出: (150, 4) print(f标签唯一值: {np.unique(y)}) # 输出: [0 1 2] print(f各类样本数: {np.bincount(y)}) # 输出: [50 50 50] # 若用本地 csv如源码包中未提供需自行生成 # X np.loadtxt(iris_features.txt) # 150行×4列 # y np.loadtxt(iris_labels.txt, dtypeint) # 150行×1列整数提示iris.data是float64类型但SVC对float32更友好。若后续训练慢可在fit()前加X X.astype(np.float32)节省内存且加速计算。2.2 特征缩放为什么不用StandardScaler而坚持手动 min-max 归一化SVM 对特征尺度极度敏感——花瓣宽度单位 mm范围 0.1–2.5和花萼长度单位 mm范围 4.3–7.9若不缩放后者梯度更新会主导优化过程导致C参数失效。源码包中flower1.py采用手动 min-max 归一化非StandardScaler原因有三教学透明性X_norm (X - X.min(axis0)) / (X.max(axis0) - X.min(axis0))一行代码暴露缩放本质避免scaler.fit_transform()黑匣子边界控制min-max 将所有特征压缩至[0,1]而StandardScaler产出均值为 0、标准差为 1 的分布对 Iris 这种小数据集易放大噪声部署友好生产环境部署时min-max只需保存min_val和max_val两个数组比StandardScaler的mean_和scale_更轻量。# flower1.py 中的手动归一化逻辑务必复现 X_min X.min(axis0) # shape(4,) X_max X.max(axis0) # shape(4,) X_norm (X - X_min) / (X_max - X_min 1e-8) # 1e-8 防除零 # 验证归一化效果 print(f归一化后最小值: {X_norm.min(axis0)}) # 应全为 0.0 print(f归一化后最大值: {X_norm.max(axis0)}) # 应全为 1.02.3 SVM 模型构建C、kernel、gamma三参数联动机制详解源码包中svm_flower.py默认使用SVC(kernelrbf, C1.0, gammascale)但这只是起点。真正理解 SVM必须动手调参并观察决策边界变化C软间隔惩罚系数C越大模型越追求训练集零错误易过拟合C越小容忍更多误分类泛化更强。Iris 数据集上C0.1时测试准确率约 94%C100时升至 98%但C1000时decision_function输出值剧烈震荡kernel核函数linear在 Iris 上足够线性可分但rbf能显式展示非线性映射能力polydegree3会因高维映射导致fit()时间暴增gammaRBF 核系数gammascale默认等价于1/(n_features * X.var())对 Iris 约为0.25手动设gamma0.001时边界平滑如直线gamma10时边界扭曲成多岛状。from sklearn.svm import SVC import matplotlib.pyplot as plt # 对比不同 C 值对决策边界的影响仅用前2维特征可视化 X_2d X_norm[:, :2] # 取花萼长、花萼宽 y_2d y fig, axes plt.subplots(1, 3, figsize(12, 4)) C_values [0.1, 1.0, 10.0] for i, C in enumerate(C_values): clf SVC(kernelrbf, CC, gammascale, random_state42) clf.fit(X_2d, y_2d) # 绘制决策边界 h 0.02 x_min, x_max X_2d[:, 0].min() - 0.1, X_2d[:, 0].max() 0.1 y_min, y_max X_2d[:, 1].min() - 0.1, X_2d[:, 1].max() 0.1 xx, yy np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) Z clf.predict(np.c_[xx.ravel(), yy.ravel()]).reshape(xx.shape) axes[i].contourf(xx, yy, Z, alpha0.3, cmapplt.cm.RdYlBu) axes[i].scatter(X_2d[:, 0], X_2d[:, 1], cy_2d, cmapplt.cm.RdYlBu, edgecolorsk) axes[i].set_title(fC {C}) plt.show()注意gammaauto已弃用必须用scale或auto_deprecatedC建议在10^-3到10^3范围内网格搜索步长用logspace(-3, 3, 7)。3. 模型评估不只看 accuracyROC 曲线、混淆矩阵与交叉验证的硬核落地3.1 为什么accuracy在 Iris 上失真必须用classification_report拆解 per-class 指标Iris 三类均衡各 50 样本accuracy高不代表模型稳健。例如若模型将全部versicolor误判为virginicaaccuracy仍为100/150≈66.7%但versicolor的recall为 0。源码包中机器学习SVM作业报告.docx强制要求输出classification_report其核心字段含义如下指标计算公式Iris 场景解读Precision精确率TP / (TP FP)“预测为 setosa 的样本中真 setosa 占多少”Recall召回率TP / (TP FN)“所有真实 setosa 中被正确找出了多少”F1-score2×(P×R)/(PR)Precision 与 Recall 的调和平均平衡二者from sklearn.metrics import classification_report, confusion_matrix from sklearn.model_selection import train_test_split # 划分训练/测试集固定 random_state 保证可复现 X_train, X_test, y_train, y_test train_test_split( X_norm, y, test_size0.3, random_state42, stratifyy ) clf SVC(kernelrbf, C1.0, gammascale) clf.fit(X_train, y_train) y_pred clf.predict(X_test) # 输出详细报告源码包中 report.docx 的核心内容 print(classification_report(y_test, y_pred, target_names[setosa, versicolor, virginica]))3.2 ROC 曲线绘制二分类思维解构多类问题One-vs-RestROC 曲线本质是二分类工具Iris 三类需转为 One-vs-RestOvR策略。源码包中ROC.png即由此生成对每个类将其视为正例其余两类合并为负例计算 TPR/FPR。关键点roc_curve()返回fpr,tpr,thresholds需对每个类单独调用auc_score计算曲线下面积0.5为随机猜测0.8为优秀多类 ROC 通常画三条曲线setosa/vs-rest, versicolor/vs-rest, virginica/vs-restROC.png中应清晰标注。from sklearn.metrics import roc_curve, auc from sklearn.preprocessing import label_binarize import numpy as np # 将 y_test 二值化OvR y_test_bin label_binarize(y_test, classes[0, 1, 2]) n_classes y_test_bin.shape[1] # 获取 decision_function 输出非 predict因需概率/距离 y_score clf.decision_function(X_test) # shape(n_samples, n_classes) # 计算每类 ROC fpr dict() tpr dict() roc_auc dict() for i in range(n_classes): fpr[i], tpr[i], _ roc_curve(y_test_bin[:, i], y_score[:, i]) roc_auc[i] auc(fpr[i], tpr[i]) # 绘制源码包中 ROC.png 的生成逻辑 plt.figure(figsize(8, 6)) colors [blue, red, green] for i, color in zip(range(n_classes), colors): plt.plot(fpr[i], tpr[i], colorcolor, lw2, labelfROC curve of class {i} (AUC {roc_auc[i]:.2f})) plt.plot([0, 1], [0, 1], k--, lw2) plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel(False Positive Rate) plt.ylabel(True Positive Rate) plt.title(Multi-class ROC Curve) plt.legend(loclower right) plt.savefig(ROC.png, dpi300, bbox_inchestight) plt.show()3.3 5 折交叉验证为什么cross_val_score比单次 train/test 更可信单次划分如test_size0.3结果受随机种子影响极大。Iris 仅 150 样本一次划分可能让某类在测试集集中出现导致accuracy虚高。源码包中实验报告要求cv5其逻辑是将数据分为 5 份轮流用 4 份训练、1 份测试共 5 次输出accuracy的均值 ± 标准差如0.96 ± 0.02比0.98更可信cv5是 Iris 的黄金选择150/530每折测试集大小适中兼顾统计稳定性和计算效率。from sklearn.model_selection import cross_val_score # 5 折交叉验证源码包中 report.docx 的必填项 scores cross_val_score(clf, X_norm, y, cv5, scoringaccuracy) print(f5-fold CV Accuracy: {scores.mean():.3f} (/- {scores.std() * 2:.3f})) # 示例输出: 5-fold CV Accuracy: 0.960 (/- 0.042)提示scoringf1_weighted更适合不平衡数据但 Iris 均衡accuracy足够cv10会提升稳定性但增加 2 倍计算时间不推荐。4. 避坑指南SVM 在 Iris 上的 4 个经典翻车现场与血泪解决方案4.1 现象ValueError: Unknown label type: continuous原因y是浮点数如np.array([0., 1., 2.])而非整数SVC误判为回归任务。解决强制转换y y.astype(int)或加载时指定dtypeint。源码包中flower1.py若读取 csv需加y np.loadtxt(labels.txt, dtypeint)。4.2 现象ConvergenceWarning: LibSVMs convergence failed原因C过大如C1e6或gamma过小如gamma1e-6导致 SMO 算法迭代不收敛。解决降低C至100以下或改用gammascale若必须大C加max_iter10000参数默认-1为无限。4.3 现象decision_function输出全为0或nan原因特征未归一化或X_test用了训练集min/max之外的值如测试集出现X X_train.max()。解决归一化时保存X_min,X_max测试集用相同参数缩放X_test_norm (X_test - X_min) / (X_max - X_min 1e-8)。4.4 现象confusion_matrix显示某类 recall 为 0但accuracy 90%原因train_test_split未设置stratifyy导致测试集中缺失某类样本如 45 个 setosa、5 个 versicolor、0 个 virginica。解决务必加stratifyy参数确保各类比例在训练/测试集中一致。4.5 现象ROC.png中某条曲线呈直线AUC≈0.5原因该类在decision_function输出中区分度极低常见于gamma过小或C过小。解决对该类单独调参如gamma1.0C10.0或改用linear核Iris 线性可分。注意所有避坑方案均已在svm_flower.py和flower1.py中预留注释位如# TODO: fix convergence按提示修改即可。5. 进阶技巧用decision_function可视化超平面以及如何把 SVM 模型固化为.joblib文件5.1 超平面可视化不只是画等高线而是解出w和b的数学表达式SVC.decision_function(X)返回样本到超平面的距离但真正理解 SVM需导出支持向量SV、权重w和偏置b。Iris 四维空间无法直接绘图但可降维到前两维花萼长、花萼宽并计算二维超平面方程clf.support_vectors_获取支持向量坐标shape(n_sv, 4)clf.dual_coef_获取拉格朗日乘子shape(n_classes, n_sv)w Σ α_i y_i φ(x_i)其中φ(x_i)是核映射rbf下无法显式写出w但linear核可得w clf.coef_[0]b clf.intercept_[0]。# 仅适用于 linear kernelIris 可行 clf_linear SVC(kernellinear, C1.0) clf_linear.fit(X_train[:, :2], y_train) # 仅用前2维 # 获取超平面参数 w clf_linear.coef_[0] # shape(2,) b clf_linear.intercept_[0] # 二维超平面方程: w[0]*x w[1]*y b 0 # 解出 y (-w[0]*x - b) / w[1] x_line np.linspace(X_train[:, 0].min(), X_train[:, 0].max(), 100) y_line (-w[0] * x_line - b) / w[1] plt.scatter(X_train[:, 0], X_train[:, 1], cy_train, cmapRdYlBu, edgecolorsk) plt.plot(x_line, y_line, k-, lw2, labelDecision Boundary) plt.xlabel(Sepal Length (norm)) plt.ylabel(Sepal Width (norm)) plt.legend() plt.title(Linear SVM Hyperplane in 2D) plt.show()5.2 模型持久化为什么用joblib而不用pickleSVC模型含大量 numpy 数组support_vectors_,dual_coef_joblib比pickle速度快 10 倍、体积小 30%且专为科学计算优化。源码包中未包含保存逻辑但实验报告要求“模型可复用”必须补全import joblib # 训练后保存模型 joblib.dump(clf, iris_svm_model.joblib) # 加载模型部署时 loaded_clf joblib.load(iris_svm_model.joblib) y_pred_new loaded_clf.predict(X_test[:5]) # 测试前5个样本 print(f加载模型预测: {y_pred_new})保存方式速度体积兼容性适用场景joblib.dump()⚡️ 极快 小Python ≥3.7科学计算模型sklearn/numpypickle.dump() 慢 大所有 Python通用对象含自定义类5.3 实验报告撰写技巧3 个让老师眼前一亮的数据呈现细节源码包中的机器学习SVM作业报告.docx是得分关键但多数人只贴图抄结论。我带学生改稿时强制加入以下三点参数敏感性热力图用C和gamma作横纵轴单元格填CV accuracy直观展示最优区域如C1.0, gamma0.25混淆矩阵标准化confusion_matrix(..., normalizetrue)显示每类召回率比原始计数更有说服力决策边界动态 GIF用matplotlib.animation生成C从0.1到10变化时边界移动过程源码包中1_1.png1_2.png2_1.png2_2.png即为此系列帧。# 生成 C 变化 GIF需安装 imageio import imageio images [] for C in [0.1, 0.5, 1.0, 5.0, 10.0]: clf SVC(kernelrbf, CC, gammascale) clf.fit(X_2d, y_2d) plt.figure(figsize(4, 4)) # ... 绘制边界代码 ... plt.savefig(fboundary_C{C}.png, dpi100, bbox_inchestight) images.append(imageio.imread(fboundary_C{C}.png)) imageio.mimsave(boundary_evolution.gif, images, duration0.5)从那以后我每次交 SVM 作业都强制走一遍C和gamma的meshgrid搜索再画热力图——不是为了炫技而是当C100时accuracy反降你得能说出是 margin 过窄导致噪声点被强行拉入支持向量。这份源码包的价值不在它能跑通而在它逼你把 SVM 从公式里拽出来摁在地上摩擦三次。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

U-Net新变体:计算量降低160倍,性能超越UNet++和UNet v2

U-Net新变体:计算量降低160倍,性能超越UNet++和UNet v2

U-Net 又出新变体了。这次的变化风格有点不一样,不是简单地加深网络或者换个注意力模块,而是直接把计算量压下去了,标题里那句“性能连超 UNet / UNet v2,计算量降低 160 倍”听起来很夸张,但如果你把近两年 U-Net 家族…

2026/10/1 18:12:33 阅读更多 →
Java开发一年半简历怎么写?项目经验与技能清单实战优化指南

Java开发一年半简历怎么写?项目经验与技能清单实战优化指南

简历这玩意儿,不逼到跳槽跟前,很少有人愿意认认真真重写一遍。我工作刚满一年半那阵,第一次动了换平台的念头,简历改了七个版本,拿着去问带我的老大哥,被批得一塌糊涂——项目经验写得像产品说明书&#xf…

2026/10/1 18:12:33 阅读更多 →
Windows快捷方式小箭头去除原理与安全方案

Windows快捷方式小箭头去除原理与安全方案

1. 项目概述:为什么桌面快捷方式非要去掉那个小箭头?你有没有盯着桌面看的时候,突然觉得那几十个带小箭头的快捷方式图标特别碍眼?不是丑,是“不干净”——就像照片里多了一个没P掉的水印,文件夹图标干干净…

2026/10/1 18:12:33 阅读更多 →

最新新闻

12G显存硬扛256K上下文:KV缓存卸载到内存的工程实践

12G显存硬扛256K上下文:KV缓存卸载到内存的工程实践

1. 12G 显存硬扛 256K 上下文,这事到底卡在哪先把结论摆在前面:12G 显存想跑 256K 上下文,靠的不是什么黑科技,而是把KV 缓存从显存里"请"出去,挪到内存里。这个思路听起来简单,但真正动手的时候…

2026/10/1 18:59:56 阅读更多 →
千手智能打铃系统使用指南:从接线到多区域方案编排

千手智能打铃系统使用指南:从接线到多区域方案编排

1. 一套打铃系统,为什么值得单独写篇说明 以前帮一所职校做设备改造,教务处老师跟我吐槽过一句话,我到现在印象都很深:"我们学校不是没有打铃,是打铃的人比上课的人还累。"当时他们用的还是传统定时器&#…

2026/10/1 18:59:56 阅读更多 →
西电机器学习课程设计:10个实验项目选做与高分指南

西电机器学习课程设计:10个实验项目选做与高分指南

简介:这份资源是面向机器学习初学者与高校学生的课程设计资料包,对应西电机器学习大作业场景,可用于课程设计、期末大作业或自学练手。包内共21个文件,以10个Python实验源码为主,另含zbak备份、txt说明、csv与data数据…

2026/10/1 18:59:56 阅读更多 →
Conda一行命令搞定Python环境冲突,告别依赖地狱

Conda一行命令搞定Python环境冲突,告别依赖地狱

做了这么多年Python开发和运维支持,类似的求助见过太多了:一个人电脑上装了十几个项目,有的要Python 3.8,有的要3.10,有的依赖A版本库,有的依赖B版本库。等到某个项目一启动就报一堆 ModuleNotFoundError …

2026/10/1 18:59:56 阅读更多 →
项目管理工作的13条铁律,建议反复阅读!

项目管理工作的13条铁律,建议反复阅读!

项目做得越多,越会发现: 很多项目不是输在能力不够,而是最基本的管理动作没做到位。 目标没说清就开始干; 责任人没定就默认“大家一起跟”; 需求变了只在群里说一声; 项目延期了,周会上才第…

2026/10/1 18:59:56 阅读更多 →
Java向上转型与向下转型的本质与实战避坑指南

Java向上转型与向下转型的本质与实战避坑指南

1. 为什么“向上转型”和“向下转型”是Java面试绕不开的坎?你刚学完继承,写了个Animal父类,再写Dog、Cat子类,顺手new了Dog对象赋值给Animal变量——编译通过,运行正常。但当你试图调用Dog特有方法bark()时&#xff0…

2026/10/1 18:58:56 阅读更多 →

日新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 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/1 0:00:30 阅读更多 →
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/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练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/1 1:01:17 阅读更多 →