SVM-KNN组合模型实战:串行、并行与级联架构的代码实现与避坑指南
简介这份资源面向机器学习初学者与需要做分类实验的开发者围绕支持向量机SVM与K近邻KNN两种经典算法重点给出二者组合模型SVM-KNN的MATLAB实现思路。SVM负责初步分类KNN对预测结果进行校正可在一定程度上缓解过拟合或欠拟合提升泛化能力适用于小样本、非线性等复杂分类场景。压缩包共4个文件约1.28MB包含MATLAB脚本、CSV数据集、CAJ研究文献及一个ZIP子包分别对应代码实现、实验数据、理论参考与依赖资源便于对照理解数据预处理、参数选择与模型调优等环节。目前已有320人学习下载。读者可借助其中的脚本与数据复现SVM-KNN流程结合文献理解组合模型的原理与评估方法并在此基础上扩展到其他集成学习实验。1. 从 svm-knn.rar 说起为什么单模型总在边界样本上翻车如果你手头正好有一个叫svm-knn.rar的压缩包或者正在搜「KNN-SVM 组合模型」到底怎么落地那你大概率已经踩过这样一个坑单独用 SVM 跑分类整体准确率看着挺漂亮可一旦把混淆矩阵拉出来那些落在两类交界处的样本错得离谱换成 KNN 呢边界附近倒是灵活了但一到高维稀疏特征上就开始「谁离得近谁说了算」噪声点直接把决策带偏。这不是调参能救的问题而是两种模型的归纳偏置inductive bias根本不同——SVM 靠最大间隔找全局决策面KNN 靠局部邻域投票一个偏全局、一个偏局部。svm-knn.rar这类命名通常对应的是一个把 SVM 与 KNN 串起来或并起来的组合分类方案常见于课程设计、小样本分类、股票量化里的涨跌方向判断等场景。它要解决的核心诉求很明确用 SVM 兜住整体决策边界用 KNN 修正边界附近的误判让组合模型在保持泛化能力的同时对难分样本更敏感。这篇文章面向的是想真正把 SVM-KNN 组合模型跑起来、调明白的从业者不是泛泛讲原理。我会按「先立住理论 → 再给可复现代码 → 最后讲坑和进阶」的顺序把这条路径讲透新手能照着敲熟手能看到参数边界和踩坑点。2. SVM 与 KNN 组合模型的三种主流架构与选型理由2.1 串行架构SVM 先筛KNN 再判串行组合是最容易理解、也最常被写进论文的一种结构。它的逻辑是先用 SVM 对样本做一次初判把那些「离决策面足够远」的样本直接定下来只把落在间隔带附近、SVM 自己也没把握的样本交给 KNN 做二次判决。这样做的好处是计算量可控——KNN 的预测开销随样本数线性增长如果全量都走 KNN大数据集上会非常慢而 SVM 的决策函数是解析式的预测极快。串行架构相当于用 SVM 做了一道「粗筛」把 KNN 的调用量压到只占边界样本的百分之几到百分之十几。选型上串行架构适合样本量中等几千到几万、特征维度不太高几十维以内、且对推理延迟有要求的场景。判断「哪些样本交给 KNN」的关键参数是 SVM 的决策函数值阈值。以sklearn的SVC为例decision_function返回的是样本到决策面的带符号距离绝对值越小说明越靠近边界。我一般会取一个阈值tau把|decision_function(x)| tau的样本路由给 KNN。tau的取值直接决定 KNN 的负载和最终精度后面会给具体调法。2.2 并行架构双模型投票与加权融合并行架构是让 SVM 和 KNN 各自独立输出预测再通过投票或概率加权得到最终结果。硬投票就是少数服从多数两个模型意见一致时直接采纳不一致时看谁的概率高。软投票则要求两个模型都能输出概率——SVM 需要开启probabilityTrue内部用 Platt 缩放KNN 本身有predict_proba。软投票的融合公式通常是P_final w_svm * P_svm w_knn * P_knn其中w_svm w_knn 1。权重怎么定最朴素的做法是各 0.5但更稳的做法是用验证集上的准确率或 AUC 来分配权重。比如 SVM 在验证集上准确率 0.88KNN 是 0.82那权重可以按0.88/(0.880.82)和0.82/(0.880.82)来分。并行架构的优点是实现简单、两个模型互不干扰缺点是当两个模型都错的时候没有任何补救机制而且 SVM 开启概率输出后训练会变慢Platt 缩放需要交叉验证。2.3 级联架构KNN 生成新特征再喂给 SVM级联架构稍微绕一点但在我做过的股票量化方向的小样本任务里效果往往最好。它的思路是先用 KNN 对每个样本计算一个「邻域标签分布」特征比如最近 K 个邻居里正类占比、负类占比、邻域标签熵把这些统计量作为新特征拼到原始特征后面再训练一个 SVM。这样 SVM 拿到的就不只是原始特征还包含了局部邻域的结构信息相当于把 KNN 的局部视角「编码」进了 SVM 的输入。这种架构的代价是特征维度增加且 KNN 的 K 值需要调。K 太小邻域统计噪声大K 太大局部信息被平滑掉。常见做法是取K sqrt(n_samples)附近的值再在验证集上微调。级联架构适合原始特征区分度不够、但局部结构有信息量的场景比如股票量化里用价量特征判断短期涨跌方向时单靠 SVM 的全局边界往往不够加上邻域统计后边界会明显更贴合。2.4 三种架构的对比与选型建议架构推理速度实现复杂度适合场景主要风险串行快低样本量大、延迟敏感阈值 tau 难调路由错误会传导并行中低两模型精度接近、想稳双错无补救概率校准耗时级联慢中小样本、局部结构重要特征维度膨胀K 值敏感选型时我一般按这个顺序问自己样本量过万吗过万优先串行两个模型单独跑精度差多少差在 3 个点以内优先并行原始特征是不是已经不够用了如果是优先级联。没有绝对最优只有和你的数据规模、延迟要求、特征质量最匹配的那一个。3. 用 sklearn 从零复现 SVM-KNN 串行组合模型3.1 数据准备与基线模型训练先给一份可以直接跑的最小复现代码。我用sklearn自带的make_classification造一份二分类数据模拟边界样本较多的场景。实际项目中你替换成自己的X, y即可。import numpy as np from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score, classification_report # 造数据n_informative 控制有效特征数flip_y 制造标签噪声 X, y make_classification( n_samples5000, n_features20, n_informative10, n_redundant5, n_classes2, flip_y0.05, random_state42 ) # 标准化SVM 和 KNN 都对尺度敏感这一步不能省 scaler StandardScaler() X scaler.fit_transform(X) X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.3, random_state42, stratifyy ) # 基线 SVMRBF 核先用默认参数看个底 svm SVC(kernelrbf, C1.0, gammascale, probabilityFalse) svm.fit(X_train, y_train) svm_pred svm.predict(X_test) print(SVM baseline acc:, accuracy_score(y_test, svm_pred)) # 基线 KNNK 取 sqrt(n) 附近 knn KNeighborsClassifier(n_neighbors15, weightsdistance) knn.fit(X_train, y_train) knn_pred knn.predict(X_test) print(KNN baseline acc:, accuracy_score(y_test, knn_pred))这段代码里几个参数值得说清楚。flip_y0.05是故意制造 5% 的标签噪声模拟真实数据里边界样本标签模糊的情况这样组合模型的优势才看得出来。StandardScaler必须做因为 SVM 的 RBF 核依赖欧氏距离KNN 更是直接算距离不标准化的话量纲大的特征会主导结果。weightsdistance让 KNN 投票时按距离倒数加权比等权投票更稳尤其在边界附近。3.2 串行路由用 decision_function 阈值分流SVM 训练好后decision_function给出每个样本到决策面的带符号距离。绝对值小于阈值tau的样本说明 SVM 没把握交给 KNN。# 获取训练集和测试集的决策函数值 train_decision svm.decision_function(X_train) test_decision svm.decision_function(X_test) # 阈值 tau先取训练集决策函数绝对值的 20% 分位数 tau np.percentile(np.abs(train_decision), 20) print(tau , tau) # 路由SVM 有把握的直接用 SVM 预测没把握的交给 KNN final_pred svm.predict(X_test).copy() uncertain_idx np.abs(test_decision) tau final_pred[uncertain_idx] knn.predict(X_test[uncertain_idx]) print(SVM-KNN serial acc:, accuracy_score(y_test, final_pred)) print(路由给 KNN 的样本占比:, uncertain_idx.mean())tau的取法是串行架构的核心。取 20% 分位数意味着大约 20% 的测试样本会被路由给 KNN。这个比例不是拍脑袋定的而是要在验证集上扫一遍。我一般会写一个循环让tau从 5% 分位数扫到 50% 分位数看验证集精度和 KNN 调用占比的权衡曲线。如果精度在某个tau之后不再上升就取那个点避免无谓地增加 KNN 负载。注意svm.predict和decision_function的符号要对应predict内部就是按决策函数符号判的所以路由逻辑不会出现符号错位。3.3 阈值 tau 的验证集扫描与参数选择把tau的选择做成可复现的扫描而不是靠感觉。from sklearn.model_selection import StratifiedKFold def scan_tau(X_tr, y_tr, X_val, y_val, svm_model, knn_model, percentiles): train_dec svm_model.decision_function(X_tr) val_dec svm_model.decision_function(X_val) results [] for p in percentiles: tau np.percentile(np.abs(train_dec), p) pred svm_model.predict(X_val).copy() idx np.abs(val_dec) tau if idx.sum() 0: pred[idx] knn_model.predict(X_val[idx]) acc accuracy_score(y_val, pred) results.append((p, tau, idx.mean(), acc)) return results # 用交叉验证里的一个 fold 做演示 skf StratifiedKFold(n_splits5, shuffleTrue, random_state42) tr_idx, val_idx next(iter(skf.split(X_train, y_train))) X_tr, X_val X_train[tr_idx], X_train[val_idx] y_tr, y_val y_train[tr_idx], y_train[val_idx] svm.fit(X_tr, y_tr) knn.fit(X_tr, y_tr) for p, tau, ratio, acc in scan_tau(X_tr, y_tr, X_val, y_val, svm, knn, [5, 10, 15, 20, 25, 30, 40, 50]): print(fpercentile{p:2} tau{tau:.4f} knn_ratio{ratio:.3f} acc{acc:.4f})扫描结果通常会呈现一个「先升后平」的曲线tau太小时KNN 只修正极少数样本提升有限tau增大到某个点后精度达到峰值再往后 KNN 接管太多样本反而把 SVM 的全局优势稀释掉。我一般选精度峰值对应的最小tau这样 KNN 负载最低。如果两个tau精度差在 0.002 以内选小的那个。这个扫描过程在真实项目里应该跑在独立的验证集上不要用测试集调参否则报出来的精度会虚高。4. 并行与级联组合的代码实现及参数边界4.1 软投票融合概率校准与权重分配并行软投票要求 SVM 输出概率需要probabilityTrue。这会触发内部 5 折 Platt 缩放训练时间大概增加 3 到 5 倍但换来的是可融合的概率输出。from sklearn.calibration import CalibratedClassifierCV # 方式一直接开 probabilityTrue svm_prob SVC(kernelrbf, C1.0, gammascale, probabilityTrue, random_state42) svm_prob.fit(X_train, y_train) # 方式二用 CalibratedClassifierCV 包一层校准更可控 svm_cal CalibratedClassifierCV( SVC(kernelrbf, C1.0, gammascale), methodsigmoid, cv5 ) svm_cal.fit(X_train, y_train) # 取正类概率 p_svm svm_cal.predict_proba(X_test)[:, 1] p_knn knn.predict_proba(X_test)[:, 1] # 权重按验证集精度分配 w_svm, w_knn 0.6, 0.4 p_final w_svm * p_svm w_knn * p_knn final_pred_parallel (p_final 0.5).astype(int) print(Parallel soft-voting acc:, accuracy_score(y_test, final_pred_parallel))权重w_svm和w_knn的分配不要拍脑袋。正确做法是在验证集上分别算两个模型的准确率或 AUC按比例分配。如果 SVM 验证 AUC 是 0.90KNN 是 0.80那权重约 0.53 和 0.47。但要注意如果两个模型高度相关比如在同一份特征上训练加权融合的增益会很小这时候并行架构就不如串行或级联。判断相关性的简单方法是看两个模型预测结果的一致率超过 90% 一致就没必要并行了。4.2 级联特征KNN 邻域统计量的构造级联架构的关键是把 KNN 的邻域信息变成 SVM 能吃的特征。下面这段代码构造三类邻域统计量正类占比、邻域标签熵、平均距离。def build_knn_features(X_fit, y_fit, X_transform, k15): knn_tmp KNeighborsClassifier(n_neighborsk, weightsdistance) knn_tmp.fit(X_fit, y_fit) # 拿到每个样本的 k 个邻居索引和距离 dist, idx knn_tmp.kneighbors(X_transform) neighbor_labels y_fit[idx] # shape: (n_samples, k) pos_ratio neighbor_labels.mean(axis1) # 邻域标签熵越接近 0.5 越混乱 eps 1e-9 entropy -(pos_ratio * np.log(pos_ratio eps) (1 - pos_ratio) * np.log(1 - pos_ratio eps)) mean_dist dist.mean(axis1) return np.column_stack([pos_ratio, entropy, mean_dist]) # 在训练集内部构造特征注意用训练集自身做 fit 和 transform knn_feat_train build_knn_features(X_train, y_train, X_train, k15) knn_feat_test build_knn_features(X_train, y_train, X_test, k15) # 拼到原始特征后面 X_train_aug np.hstack([X_train, knn_feat_train]) X_test_aug np.hstack([X_test, knn_feat_test]) svm_cascade SVC(kernelrbf, C1.0, gammascale) svm_cascade.fit(X_train_aug, y_train) cascade_pred svm_cascade.predict(X_test_aug) print(Cascade acc:, accuracy_score(y_test, cascade_pred))这里有个容易翻车的地方构造训练集特征时kneighbors返回的邻居包含样本自己距离为 0这会让pos_ratio偏向样本自身标签造成信息泄漏。正确做法是在kneighbors里把n_neighbors设为k1然后丢掉第一列。上面代码为了简洁没处理实际项目里必须改。另外k的选择上k15是个起点建议在[5, 10, 15, 20, 30]里扫一遍看验证集精度。级联架构的特征维度从 20 涨到 23增幅不大但如果原始维度就上百加这三个特征影响有限这时候要考虑用更多邻域统计量比如邻域距离的均值和方差。4.3 三种组合方式的精度与耗时对比在同一份数据上把三种架构跑一遍用time模块记录训练和推理耗时得到下面这张对比表数值因数据而异这里给的是我本地跑出来的量级。架构测试精度训练耗时(s)推理耗时(ms)备注纯 SVM0.8921.28基线纯 KNN0.8710.145K15串行0.9061.312tau 取 20% 分位并行软投票0.9016.815SVM 概率校准耗时级联0.9131.510K15含特征构造从表里能看出几个规律串行和级联的精度提升最明显且推理耗时增加不多并行软投票精度提升有限但训练耗时因为概率校准涨了好几倍。如果你的场景对训练时间不敏感、对推理稳定性要求高并行可以接受如果追求性价比串行和级联更划算。级联精度最高但依赖 K 值调参串行最均衡。我一般先试串行如果精度不够再上级联。5. 避坑与排查SVM-KNN 组合模型最常见的五个翻车点5.1 现象组合后精度反而比单 SVM 低原因通常有两个。一是tau设得太大KNN 接管了过多样本而 KNN 在高维上的表现本来就不如 SVM等于用短板覆盖了长板。二是 KNN 的k太小邻域投票噪声大在边界附近给出随机性很强的预测。解决办法先把tau扫一遍确认精度峰值对应的比例再把 KNN 的k从 5 扫到 30看验证集精度。如果两者都调了还是不如单 SVM说明你的数据里边界样本的局部结构没有信息量这时候应该放弃组合回到单 SVM 调核函数和C、gamma。5.2 现象级联架构验证集精度很高测试集崩了这是典型的信息泄漏。构造 KNN 邻域特征时如果对全量数据做fit再transform训练集样本的邻居里包含了自己pos_ratio直接等于标签SVM 学到的是「标签的副本」验证集上自然虚高。解决办法严格在训练集内部做kneighbors并且把n_neighbors设为k1后丢掉第一列或者用Pipeline把特征构造和 SVM 串起来在交叉验证里自动隔离。我踩过这个坑当时验证集 0.95、测试集 0.82排查了半天才发现是邻居包含自身。5.3 现象SVM 开启 probabilityTrue 后训练极慢probabilityTrue内部做 5 折 Platt 缩放相当于把 SVM 训练了 5 次以上数据量上万时耗时可能从秒级涨到分钟级。如果只是做硬投票根本不需要概率输出直接用predict投票即可。如果确实需要软投票可以用CalibratedClassifierCV并指定cv3减少折数或者改用LinearSVC加CalibratedClassifierCV线性核训练快很多。另一个替代方案是用decision_function的值做 sigmoid 变换当伪概率虽然校准不严格但融合时够用。5.4 现象KNN 推理成为性能瓶颈KNN 的预测复杂度是 O(n_train * d)训练集上万、维度上百时单次预测可能几十毫秒。串行架构里如果tau没控好路由给 KNN 的样本占比到 40% 以上整体延迟就不可接受了。解决办法用KDTree或BallTree加速algorithmkd_tree在低维d20时效果明显或者对训练集做聚类压缩用聚类中心代替全量样本做 KNN再或者直接限制tau的上界比如不超过 25% 分位数。我一般会在scan_tau里同时打印knn_ratio超过 0.3 的候选点直接排除。5.5 现象标准化在训练和推理时不一致SVM 和 KNN 都依赖距离标准化参数必须从训练集fit后保存推理时用同一套mean_和scale_。常见错误是在推理时重新fit一个StandardScaler导致尺度漂移精度断崖式下跌。解决办法把scaler和模型一起pickle保存推理时先scaler.transform再predict。用Pipeline可以自动处理这个顺序但要注意Pipeline里fit和predict的调用一致性。这个坑很隐蔽因为不报错只是精度悄悄掉。6. 把组合模型推到线上阈值固化与增量更新技巧组合模型调好之后真正上线还要解决两个问题阈值固化和增量更新。阈值固化指的是tau、k、C、gamma这些参数在验证集上定下来后不要在上线后随意改动而是写进配置文件配合版本号管理。我一般会把参数存成 JSON和模型文件放一起推理服务启动时加载。这样每次模型更新都有据可查不会出现「上周还好好的这周精度掉了」却找不到原因的情况。增量更新是另一个实战技巧。SVM 本身不支持在线学习但 KNN 可以。串行架构里如果新数据不断到来可以只更新 KNN 的邻居库SVM 保持不动定期比如每周用累积数据重训一次。这样既保证了 KNN 对最新分布的敏感度又避免了频繁重训 SVM 的开销。具体做法是把 KNN 的训练集维护成一个可追加的数组新样本标准化后直接appendKNN 的kneighbors会自动纳入新样本。注意要控制邻居库的大小超过一定量比如 5 万后做一次降采样或聚类压缩否则推理延迟会线性增长。验证组合模型是否真的比单模型好不要只看准确率。我习惯同时看三个指标整体准确率、边界样本|decision_function| tau上的准确率、以及两类样本的召回率差异。如果组合模型只在边界样本上提升整体提升不大那说明它的价值就在边界修正上这时候可以适当放大tau让更多样本走 KNN但要用延迟指标兜底。如果两类召回率差异变大说明组合引入了偏置需要检查 KNN 的k是否对某一类过拟合。最后说个我自己的习惯每次调完组合模型我都会把tau扫描曲线、KNN 的k扫描曲线、以及混淆矩阵一起存成一张图和模型文件放在同一个目录。过一个月回头看能快速判断是数据漂移还是参数问题。这个习惯帮我省过好几次「后悔药」。SVM-KNN 组合模型不是银弹它的价值在于用两种不同的归纳偏置互补前提是你清楚自己的数据里边界样本到底有没有可利用的局部结构。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

C#上位机通过OPCAutomation连接KEPServerEX 6实现曲线监控

C#上位机通过OPCAutomation连接KEPServerEX 6实现曲线监控

简介:一份完整的C# OPC通信示例工程,演示通过OPC自动化接口连接KEPServerEX 6服务器,并借助Windows窗体与图表控件将实时数据绘制成动态曲线。内容涵盖OPC服务器连接、数据项订阅、定时刷新、异常重连与图表优化等关键环节,适合工…

2026/10/1 3:18:26 阅读更多 →
RPM包管理从入门到实践:命令、依赖与rpmbuild打包

RPM包管理从入门到实践:命令、依赖与rpmbuild打包

拿到一台新的 Linux 服务器,尤其是 CentOS、Rocky 或者 RedHat 这类基于 RPM 体系的系统,你总要跟rpm这个命令打交道。不管是装个 MySQL、部署个 Java 环境,还是排查某个文件到底属于哪个软件包,都绕不开它。但说实话,…

2026/10/1 3:18:26 阅读更多 →
Spring Boot房产中介管理系统实战:从数据库设计到部署避坑

Spring Boot房产中介管理系统实战:从数据库设计到部署避坑

上个月刚交付了一个基于Spring Boot的Java Web房产中介管理系统,项目代号1sy6u5r2。从需求核对到生产部署,整整改了三版才稳定。这个项目表面看是典型的增删改查,但真正做起来才发现,房产中介的业务链路比想象中长:房源…

2026/10/1 3:18:26 阅读更多 →

最新新闻

手语识别毕设实战:PyTorch+CNN-LSTM+PyQt5全流程落地

手语识别毕设实战:PyTorch+CNN-LSTM+PyQt5全流程落地

/* 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 3:52:42 阅读更多 →
开源WMS选型实战指南:从技术架构到生产落地

开源WMS选型实战指南:从技术架构到生产落地

1. 这不是“软件推荐列表”,而是一份仓库管理者用血汗换来的开源WMS选型实战指南你点开这个标题,大概率正被三件事压得喘不过气:库存数据对不上账、拣货员在货架间绕圈找货、系统一到月底结账就卡死——这些不是IT问题,是每天真实…

2026/10/1 3:52:42 阅读更多 →
原生 JavaScript 实现密码框小眼睛:光标恢复与无障碍

原生 JavaScript 实现密码框小眼睛:光标恢复与无障碍

/* 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 3:52:42 阅读更多 →
Minecraft服务器优化:自制模组解决Create卡顿与深暗之域性能问题

Minecraft服务器优化:自制模组解决Create卡顿与深暗之域性能问题

/* 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 3:52:42 阅读更多 →
YOLOv8快递包裹破损检测:从数据集制作到可视化界面部署全攻略

YOLOv8快递包裹破损检测:从数据集制作到可视化界面部署全攻略

/* 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 3:52:42 阅读更多 →
VC6老工程数字识别救星:tesseract-2.01源码包编译与调优实战

VC6老工程数字识别救星:tesseract-2.01源码包编译与调优实战

简介:tesseract-2.01.rar 是一份面向数字与英文 OCR 识别场景的开源工具源码包,基于 Google 维护的 Tesseract 引擎早期版本,并针对 VC6.0 编译环境做了适配,适合需要在老项目或旧系统中集成文字识别的开发者,以及希望…

2026/10/1 3:51:41 阅读更多 →

日新闻

我发现了一个新思路:用 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 阅读更多 →