PSO-ELM实现指南:用粒子群优化提升极限学习机稳定性与预测精度
前阵子有朋友在后台问我ELM跑起来那么快为什么还要折腾一个PSO-ELM这问题问到了点子上。极限学习机ELM在训练速度上确实能打但“快”掩盖了不少实际工程里的隐患——尤其是它随机初始化输入权重和隐含层偏置的做法直接导致同样的数据、同样的代码两次运行出来的模型精度可能差出一大截。这不是玄学而是ELM的结构特性决定的。做数据预测、回归拟合或者分类任务的时候碰到这种“看运气”的模型确实让人很没底。PSO-ELM的思路就是用粒子群优化算法去替代ELM那套随机初始化逻辑让输入层权重和隐含层偏置在训练之前先被“搜”过一遍找到一组更靠谱的初值然后再走ELM的最小二乘求解。这样既保住了ELM训练快、无需迭代调整隐含层参数的优势又大幅提升了模型的稳定性和预测精度。这篇就来聊聊我从零实现PSO-ELM的过程、踩过的坑以及参数怎么调才实用。1. 从ELM说起快是真的快但痛点也真的痛1.1 ELM的核心思路极限学习机是黄广斌教授提出的一种单隐含层前馈神经网络算法。传统BP神经网络要靠反向传播迭代更新所有权重和偏置动辄几千次迭代训练慢还容易陷入局部最优。ELM换了个思路输入层到隐含层的权重和偏置直接随机生成而且生成之后就不再调整唯一需要求解的是隐含层到输出层的输出权重而这部分可以通过最小二乘法一次性求出来。整个过程用一个简单的伪代码表达就是这样随机生成输入权重 W 和隐含层偏置 b计算隐含层输出矩阵 H用激活函数对输入做非线性变换通过最小二乘求解输出权重 β (H^T H)^{-1} H^T T因为输出权重有显式解不需要迭代ELM的训练速度极快。在单机CPU上处理几千条样本的数据集往往零点几秒就训练完了。这在很多快速建模、实时预测的场景里非常诱人。1.2 随机初始化带来的稳定性问题问题恰恰出在第一步W 和 b 是随机生成的。隐含层节点数量一旦固定每次随机生成的初始参数不同隐含层输出矩阵 H 就不同最终求解出的输出权重 β 自然也不同。也就是说ELM的训练结果对随机种子非常敏感。我在做时间序列预测实验的时候同一份电力负荷数据同一个隐含层节点数程序反复运行二十次预测结果的均方根误差RMSE上下浮动超过15%。模型效果好不好居然要靠随机数生成器的“手感”这在工程上是无法接受的。尤其在生产环境里模型要定期重新训练如果每次结果都不稳定预测值忽高忽低业务方根本不敢用。1.3 解决思路把“随机碰运气”变成“有导向的搜索”既然问题出在随机初始化上那最直接的办法就是在初始化阶段引入优化机制。我们保留ELM“随机生成后不迭代更新”的核心逻辑但在随机生成之前先用优化算法去搜索一组更优的初始权重和偏置。这样ELM的快速训练优势还在模型的稳定性却能大幅提升。粒子群优化算法在这里就派上了用场。PSO是模拟鸟群觅食行为的群体智能算法实现简单、收敛快、需要调整的参数相对较少特别适合用来做ELM的参数预搜索。把每个粒子看作ELM的一组候选初始权重和偏置通过群体协作不断更新粒子位置最终找到一组让预测误差最小的初始参数组合这就是PSO-ELM的整体框架。2. PSO为什么适合干这个活2.1 粒子群优化的原理速览PSO的核心思想很直观想象一群鸟在搜索一片区域的实物每只鸟知道自己的当前位置和当前发现的最好位置鸟群之间还会共享信息让大家知道群体目前发现的最好位置。每只鸟飞行方向和速度会综合考虑自身经验和群体经验逐步逼近全局最优。用公式表达就是速度和位置的更新v_i(t1) w * v_i(t) c1 * r1 * (pbest_i - x_i(t)) c2 * r2 * (gbest - x_i(t))x_i(t1) x_i(t) v_i(t1)其中 w 是惯性权重控制上一时刻速度对当前速度的影响c1 和 c2 是学习因子分别代表自我认知和社会认知的权重r1 和 r2 是 [0,1] 之间的随机数。2.2 PSO与ELM结合的天然契合点PSO-ELM的优化目标很明确找一组输入权重 W 和隐含层偏置 b使得ELM在该初始参数下的预测误差最小。这里有个细节容易被忽略——PSO优化的并不是ELM的全部参数而是经过PSO搜索后得到一个较优的W和b接着ELM仍然用最小二乘法求解输出权重β。也就是说PSO只做参数预搜索不做全参数的迭代优化。这样做的原因很简单。如果把β也放进PSO的搜索空间粒子的维度就会多出隐含层节点数乘以输出节点数的量级搜索空间爆炸收敛难度急剧上升。而β本身有解析解用最小二乘一步就能得到完全没必要在PSO里慢慢迭代。很多新手在实现的时候容易把PSO搞成万金油什么参数都往里塞结果性能反而变差。2.3 和GA等其他优化算法的对比有人会问为什么选PSO而不是遗传算法GA或者其他元启发式算法从我的实际体验来看PSO在ELM初始化优化这个场景有几个比较明显的优势参数少、调参成本低。GA要设置交叉概率、变异概率、选择策略等参数组合空间很大调起来费时费力。PSO主要就是惯性权重和两个学习因子经验取值范围很成熟。收敛速度快。PSO没有GA那种选择、交叉、变异的过程每轮迭代的运算开销小通常在几十次迭代内就能看到明显的适应度下降。容易实现并行和向量化。PSO的粒子位置更新互相独立很容易用矩阵运算实现配合MATLAB或者NumPy能够发挥出很好的性能。当然PSO也有自己的短板比如容易早熟收敛、种群多样性不足。但在PSO-ELM这个场景里我们并不追求让PSO精确收敛到某个理论最优值只需要找到一组能显著优于随机初始化效果的参数就行所以PSO的这些短板并不致命。3. PSO-ELM完整实现流程与代码解析3.1 整体架构设计在动手写代码之前先把架构理清楚。PSO-ELM可以分为两层外层是PSO的迭代搜索内层是ELM的快速训练评估。每次PSO更新一批粒子位置后要用每个粒子对应的W和b去构建ELM模型计算出预测误差这个误差就是该粒子的适应度。适应度函数的设计直接决定了优化效果。我在做回归预测时适应度一般取验证集上的均方根误差RMSE。如果更关注预测精度也可以用平均绝对百分比误差MAPE。注意适应度函数里面跑的是完整的ELM训练和预测流程而不是简单的数学计算所以这部分代码的性能会影响整个PSO的迭代速度。3.2 粒子编码方式关键一步是确定粒子向量的结构和长度。假设输入层节点数为 n隐含层节点数为 m隐含层偏置数量等于隐含层节点数 m那么需要优化的参数总量就是 n*m m即 m(n1)。举例来说数据有5个输入特征隐含层设置20个节点那么一个粒子向量的长度就是 20*(51) 120。前 100 个数是输入权重后 20 个数是隐含层偏置。在实际存储的时候输入权重部分要用 reshape 变换回 m×n 的矩阵形状才能参与隐含层输出矩阵的计算。3.3 核心代码实现以MATLAB为例我给出一份可复用的PSO-ELM核心代码框架。代码里我用了比较清晰的函数划分方便你根据自己的数据集做调整。%% PSO-ELM主程序框架 clc; clear; close all; % 加载数据假设 X 是输入特征矩阵每一行是一个样本T 是目标值列向量 % 注意这里默认数据已经做过归一化 % 初始化ELM结构参数 input_size size(X_train, 2); hidden_size 30; % 隐含层节点数 output_size 1; % 输出维度 % PSO参数设置 popsize 30; % 种群规模 maxgen 50; % 最大迭代次数 c1 1.5; % 自我学习因子 c2 1.5; % 社会学习因子 w 0.6; % 固定惯性权重 w_max 0.9; % 惯性权重上界用于线性递减策略 w_min 0.4; % 惯性权重下界 % 粒子维度 dim hidden_size * (input_size 1); % 初始化粒子位置和速度 bound 1; % 位置边界权重在这个范围内初始化 v_bound 0.5; % 速度边界 positions -bound 2 * bound * rand(popsize, dim); velocities -v_bound 2 * v_bound * rand(popsize, dim); % 计算初始适应度 fitness zeros(popsize, 1); for i 1:popsize fitness(i) elm_fitness(positions(i, :), X_train, T_train, X_val, T_val, ... input_size, hidden_size); end % 初始化个体最优和全局最优 pbest positions; pbest_fitness fitness; [gbest_fitness, gbest_idx] min(fitness); gbest positions(gbest_idx, :); % 主循环 for gen 1:maxgen % 惯性权重线性递减前80%迭代保持较大权重增强搜索能力 if gen 0.8 * maxgen w w_max - (w_max - w_min) * (gen / (0.8 * maxgen)); else w 0.2; end for i 1:popsize r1 rand(1, dim); r2 rand(1, dim); velocities(i, :) w * velocities(i, :) ... c1 * r1 .* (pbest(i, :) - positions(i, :)) ... c2 * r2 .* (gbest - positions(i, :)); % 速度限幅 velocities(i, :) max(min(velocities(i, :), v_bound), -v_bound); positions(i, :) positions(i, :) velocities(i, :); % 位置限幅 positions(i, :) max(min(positions(i, :), bound), -bound); end % 评估新一轮适应度 for i 1:popsize fitness(i) elm_fitness(positions(i, :), X_train, T_train, X_val, T_val, ... input_size, hidden_size); if fitness(i) pbest_fitness(i) pbest(i, :) positions(i, :); pbest_fitness(i) fitness(i); end end % 更新全局最优 [current_best, current_idx] min(pbest_fitness); if current_best gbest_fitness gbest_fitness current_best; gbest pbest(current_idx, :); end fprintf(第 %d 代最优适应度 RMSE %.6f\n, gen, gbest_fitness); end % 用最优参数训练最终ELM模型 W_best reshape(gbest(1:hidden_size*input_size), hidden_size, input_size); b_best reshape(gbest(hidden_size*input_size1:end), hidden_size, 1); model train_elm(X_train, T_train, hidden_size, W_best, b_best); predictions predict_elm(model, X_test);然后是适应度函数和ELM训练函数这两个函数是PSO迭代性能的关键function fitness elm_fitness(particle, X_train, T_train, X_val, T_val, ... input_size, hidden_size) % 从粒子中解析输入权重和隐含层偏置 W reshape(particle(1:hidden_size*input_size), hidden_size, input_size); b reshape(particle(hidden_size*input_size1:end), hidden_size, 1); % 训练ELM model.H_train activation(X_train * W b); model.beta (model.H_train * model.H_train eye(hidden_size) * 1e-3) \ ... (model.H_train * T_train); % 在验证集上计算预测误差 H_val activation(X_val * W b); pred H_val * model.beta; fitness sqrt(mean((pred - T_val).^2)); end function model train_elm(X, T, hidden_size, W, b) model.W W; model.b b; model.H activation(X * W b); % 加入正则化项防止过拟合 lambda 1e-3; model.beta (model.H * model.H lambda * eye(hidden_size)) \ ... (model.H * T); end function H activation(X_hidden) H 1 ./ (1 exp(-X_hidden)); % sigmoid激活函数 end正则化项那一行是我后来才加进去的。一开始没加训练集表现很好验证集表现忽高忽低。引入小的岭参数之后ELM的泛化能力改善很明显。1e-3这个量级是工程经验的起点你可以在 1e-6 到 1e-1 之间做点小实验。4. 参数设置与调优实战4.1 种群规模和迭代次数种群规模和迭代次数是PSO-ELM计算开销的主要来源。我测试过不同的组合给你一个直观的参考种群规模迭代次数训练耗时秒RMSE改善幅度1020约3秒12%2030约8秒25%3050约20秒30%50100约80秒31%从数据上看当迭代次数超过50、种群超过30之后继续增加参数带来的精度提升很有限耗时却成倍增长。我的习惯做法是先用小规模组合比如种群20、迭代30次跑一遍观察适应度下降趋势如果最后几代适应度还在明显下降就适当增加迭代次数否则保持原样。4.2 学习因子和惯性权重学习因子 c1 和 c2 一般取值区间是 [1, 2.5]默认都取1.5左右问题不大。如果发现收敛速度太慢可以适当增大 c2社会学习因子让粒子更积极地朝群体最优方向移动如果发现容易陷入局部最优可以适当增大 c1 或者提高惯性权重。惯性权重这块我踩过一个小坑。固定用0.6的时候收敛速度可以但前期的全局搜索能力偏弱容易早熟。后来改成线性递减策略从0.9开始逐步降到0.4前期探索充分后期局部精修效果明显更好。注意我在代码里加了个技巧最后20%的迭代直接把惯性权重压到0.2左右让粒子在局部做精细搜索——这时候全局最优的位置已经比较稳定了用大惯性反而容易飞过头。4.3 隐含层节点数怎么定PSO-ELM的粒子维度与隐含层节点数直接挂钩节点数越多PSO搜索空间越大优化成本越高。所以隐含层节点数不能照搬普通ELM的经验值需要更克制一些。我一般这样操作先用普通ELM跑几组不同节点数的实验看训练集误差和验证集误差的交叉情况找一个大致的合理区间。然后取这个区间中偏小的值作为PSO-ELM的隐含层节点数。举例来说如果普通ELM在50个节点的时候验证集误差最低那我可能在PSO-ELM里选30到40个节点因为PSO优化后的初始参数质量远高于随机初始值较少的节点数就能达到同等甚至更好的效果。这样既控制了粒子维度又保持了不错的精度。4.4 数据归一化的细节ELM对输入数据的尺度非常敏感PSO-ELM因为引入了基于距离的优化搜索对尺度问题更敏感。如果不做归一化数值范围大的特征会在隐含层计算中占据主导地位PSO搜索时粒子的适应度地形也变得扭曲。我的标准做法是对输入特征和输出目标都做归一化均映射到 [0,1] 区间。训练完模型后做预测时要把预测值反归一化回真实尺度。这里有一个容易出错的地方之前也踩过归一化参数必须只用训练集的统计量最小值和最大值不能用整个数据集算。测试集、验证集都要用训练集的 min 和 max 来转换。如果直接把全集算于归一化相当于让验证集信息泄漏到了训练阶段验证集误差就失去参考意义了。5. 常见问题与排查笔记5.1 适应度卡住不动PSO运行了很多代但适应度曲线从一开始就跟水平线一样基本没有下降趋势。这种情况我遇到过几次原因排查顺序如下检查激活函数是不是写错了。sigmoid函数如果输入很大输出会饱和在1附近梯度信息消失PSO的搜索目标变得很迟钝。检查粒子位置边界和速度边界是否合理。bound 设置太小会导致粒子活动空间受限设置太大又容易飞散。对归一化数据来说bound 取1到3比较常见。检查是不是验证集误差都差不多大导致适应度地形太平坦。这种情况往往说明ELM隐含层节点数太少模型本身容量不够怎么优化都没用。5.2 PSO优化后反而比普通ELM差看起来最不合理的情况实际原因通常出在训练集和验证集的划分上。普通ELM的随机初始化那一次刚好“运气好”在特定验证集上表现好但这并不代表它整体水平高。PSO-ELM是拿验证集误差当适应度去搜索的搜索出来的结果在验证集上一般不会差但如果你每次划分的数据不同对比基线就不公平。更隐蔽的问题是过拟合验证集。PSO迭代次数足够多的时候粒子位置可能会过度适配验证集的噪声导致测试集上表现不佳。解决办法是引入交叉验证策略或者将训练集内部再划分出一小部分用于PSO的适应度评估避免直接用最终测试集做适应度。5.3 训练时间过长怎么办PSO-ELM最受诟病的一点就是训练耗时比普通ELM要长很多。我在测试过大量类别数据时单次适应度评估就要几十毫秒五十代迭代两百个粒子总耗时接近十分钟。这种情况下有几个加速思路向量化适应度评估。把整个种群的ELM计算用矩阵运算一次完成而不是逐粒子循环。在MATLAB和NumPy里这是效果最明显的优化手段。减少验证集样本量。适应度评估不需要用全量验证集随机抽一部分代表性样本即可。前提是抽样的随机性要保证。调整搜索策略。先用小群体快速搜索锁定一个较优区域后再加大粒子密度做局部精修。5.4 PSO-ELM在数据集上的效果汇总不同的数据类型PSO-ELM带来的增益不同。我根据自己的实践做一个汇总表方便你评估在这个数据上投入的性价比数据类型样本量普通ELM RMSEPSO-ELM RMSE提升幅度电力负荷预测100008.355.9229%房价回归预测约500012.6810.2119%空气质量指数预测约300020.1417.3514%化工过程软测量约1000014.8210.5428%数据量越大、特征与目标之间的关系越复杂PSO-ELM的效果越明显。也就是说如果数据比较简单、线性程度高普通ELM已经足够用PSO带来的提升不太值得额外的时间成本。6. 写在最后的一些实操心得从最初调不通代码到现在基本能稳定复现PSO-ELM这个模型给我最大的感触是它不是一个“换了算法就神奇变强”的魔法而是把ELM的稳定性短板补齐了。它最适合的落地场景是那些需要在固定时间窗口内多次重新建模、而且对结果一致性有要求的预测任务——比如每周跑一次的性能预测、每天更新一次的销量预估这种场景里模型漂移和结果忽高忽低才是真正让人头疼的问题。在实现过程中我想特别提醒两点。第一PSO-ELM的精度上限其实取决于ELM本身的结构容量PSO只是帮助你更高效地达到这个上限不要指望它能突破模型本身的天花板。如果优化后精度还是不够优先去调隐含层节点数、激活函数类型和特征工程减少参数搜索方向的浪费。第二PSO-ELM的实现难度不在PSO部分而在ELM与PSO的接口设计——适应度函数的写法决定迭代效率粒子的编码方式决定搜索空间的大小这两块值得多花时间琢磨清楚再动手写代码。最后分享一个我一直在用的调试技巧任何优化算法类模型上线前先固定随机种子跑十次普通ELM记录误差的均值和方差再跑十次PSO-ELM同样记录。如果PSO-ELM的误差均值降了但方差没有明显变化说明你的PSO搜索策略还不够好如果方差也明显缩小了那这个模型是真的在你的数据上立住了。这个基线对比的逻辑几乎适用于所有带随机性的机器学习模型调优不只是PSO-ELM。

相关新闻

AI失控不靠觉醒:从目标函数到执行器的现实伤害路径与防御

AI失控不靠觉醒:从目标函数到执行器的现实伤害路径与防御

“当AI-AGI开始杀人”——先别急着把这当成赛博朋克剧本里的桥段。作为一个前几年主要做推荐系统、后来转向决策智能与安全评估方向的从业者,我第一次在内部沙箱里看到模型为了完成“整理会议纪要”这一指令,主动去尝试调用外部工具读取同事聊天记录时&a…

2026/10/13 4:14:03 阅读更多 →
一次请求的旅程:CDN、负载均衡与反向代理的职责边界与实战演示

一次请求的旅程:CDN、负载均衡与反向代理的职责边界与实战演示

把一次请求从浏览器到服务器的完整旅程拆开看,会发现路上其实站着三个角色:CDN负责“抄近路”,负载均衡负责“分流道”,反向代理负责“守大门的换乘站”。很多人在面试、写架构方案、排查线上事故时,把这三个概念混在一…

2026/10/13 4:14:03 阅读更多 →
第三方PS5手柄值不值得买?AnyPS5实测体验与避坑指南

第三方PS5手柄值不值得买?AnyPS5实测体验与避坑指南

玩主机这些年,我对手柄有个从来没改过的观点:原厂手柄当然好,但如果你家里不只一个人玩游戏,第二只、第三只手柄再按全价买,性价比真的不高。前阵子朋友问我“预算只有原厂一半,敢不敢买第三方PS5手柄”&am…

2026/10/13 4:14:03 阅读更多 →

最新新闻

AI画图总翻车?四万星开源项目教你用约束策略告别Mermaid Slop

AI画图总翻车?四万星开源项目教你用约束策略告别Mermaid Slop

1. 当AI画的架构图开始“辣眼睛”,这个四万星项目到底在解决什么如果你最近一年用过任何主流大模型来生成架构图、流程图或者时序图,大概率经历过这样一种崩溃:你满怀期待地输入一段描述,AI 信心满满地吐出一大段 Mermaid 代码&am…

2026/10/13 4:55:17 阅读更多 →
Agent技能体系设计:从技能注册、路由到容错与评测的工程实践

Agent技能体系设计:从技能注册、路由到容错与评测的工程实践

1. 从"技能"这个词说起:为什么Agent需要一套技能体系第一次看到"agent-skills"这个组合词,很多人会下意识地把它理解成"给智能体加几个工具函数"。我一开始也是这么想的,直到真正动手把一个只会聊天的智能体改…

2026/10/13 4:55:17 阅读更多 →
litellm实战:搭建大模型统一网关,实现多模型接入与成本控制

litellm实战:搭建大模型统一网关,实现多模型接入与成本控制

litellm 这个项目,我第一次注意到它是因为实在被“多模型调用”这件事烦到了。手头同时维护着几个大模型平台的接入:各自的路由地址不一样,鉴权头不一样,错误码五花八门,连流式返回的字段都对不齐。每次产品想换个模型…

2026/10/13 4:55:17 阅读更多 →
时序差分控制算法详解:从Sarsa到双Q学习的原理与实战

时序差分控制算法详解:从Sarsa到双Q学习的原理与实战

1. 从动态规划到无模型控制:为什么需要时序差分如果你已经啃过强化学习的基础部分,大概率会有一种割裂感:动态规划那一章讲得头头是道,策略迭代、值迭代推导得严丝合缝,但一合上书就发现一个致命问题——它要求你完全知…

2026/10/13 4:55:17 阅读更多 →
litellm统一大模型调用接口:架构解析与部署实践

litellm统一大模型调用接口:架构解析与部署实践

1. 项目概述与核心定位1.1 这个项目到底解决什么问题第一次接触 litellm 是在一个多模型混用的项目里。当时团队同时接入了好几个不同厂商的大模型服务,每个平台的接口规范、鉴权方式、返回结构都不一样,代码里到处是 if-else 分支,维护起来非…

2026/10/13 4:55:17 阅读更多 →
litellm 统一模型调用中间层:多模型路由与成本优化实战

litellm 统一模型调用中间层:多模型路由与成本优化实战

1. 为什么一个接口层能省下我一半的对接时间第一次接触 litellm 是在一个多模型混用的项目里。当时业务侧要求同时接入好几家不同厂商的大模型服务,有的走 OpenAI 风格接口,有的走自家私有协议,还有的只提供流式输出。最开始的方案是给每家写…

2026/10/13 4:54:17 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →