BayesianOptimization 技术指南:基于高斯过程的 Python 全局优化工具解析与实践
机器学习【免费下载链接】BayesianOptimizationA Python implementation of global optimization with gaussian processes.项目地址https://gitcode.com/gh_mirrors/ba/BayesianOptimization点击查看免费下载BayesianOptimization 是一个用纯 Python 实现、基于贝叶斯推断与高斯过程Gaussian Process的约束全局优化库核心目标是用尽可能少的迭代次数找到未知函数的最大值。本文以项目官方文档首页docsrc/index.rst为骨架结合仓库源码、测试与示例 Notebook系统讲解其安装方式、算法原理、核心 API、采集函数体系、约束处理、参数类型与域缩减等进阶能力帮助读者既能在自己的高代价函数优化场景中快速上手也能从源码层面理解每一步推荐背后的实现机制。项目定位为昂贵函数而生的全局优化器官方文档首页对项目的定位非常明确docsrc/index.rstThis is a constrained global optimization package built upon bayesian inference and gaussian processes, that attempts to find the maximum value of an unknown function in as few iterations as possible.这句话拆解出三个关键信息约束优化使用者必须为每个参数指定可探测的最小值与最大值pbounds这也决定了它是一个受限域上的优化器未知函数不需要目标函数的梯度、凸性等先验结构只需要一个输入已知参数、输出一个实数的黑盒函数迭代次数少与网格搜索、随机搜索相比它把采样次数当作最宝贵的资源尤其适合单次采样成本极高的场景如超参数训练、仿真实验、物理试验以及探索exploration与利用exploitation需要动态权衡的场景。从仓库的 pyproject.toml 可以看到当前版本为3.4.0要求 Python3.9运行时依赖为numpy、scipy、scikit-learn、colorama、packaging其中高斯过程的建模直接复用 scikit-learn 的GaussianProcessRegressor与Matern核。安装体积小、无重型第三方框架如 TensorFlow/PyTorch这也是它被广泛用于工程实践的原因之一。安装pip 与 Conda 双通道官方文档首页给出了两种官方安装方式docsrc/index.rst方式一pipPyPI 渠道$ pip install bayesian-optimization方式二Condaconda-forge 渠道$ conda install -c conda-forge bayesian-optimization安装完成后可以通过以下方式确认版本并导入核心对象import bayes_opt print(bayes_opt.__version__) # 例如 3.4.0 from bayes_opt import BayesianOptimization仓库的 bayes_opt/init.py 公开导出了BayesianOptimization、ConstraintModel、ScreenLogger、SequentialDomainReductionTransformer、TargetSpace以及acquisition子模块这些也正是本文章节将要逐一展开的核心构件。工作原理从后验分布到下一个采样点官方文档首页用一段高度凝练的描述概括了算法机制这里结合源码将其拆解为四个环节。1. 构建后验分布高斯过程Gaussian Process贝叶斯优化先构造一个关于目标函数的后验分布——高斯过程用来描述函数最可能长什么样。随着观测点已采样的参数组合及其目标值不断增加后验分布不断被修正算法对参数空间中哪些区域值得继续探索、哪些区域基本可以放弃的置信度也越来越高如下方示意图所示图片来自文档首页 docsrc/static/bo_example.png2. 拟合 GP 与预测均值和方差在每一轮迭代中算法将已采样的点拟合到一个高斯过程回归器上。从源码看内部 GP 的默认配置位于 bayes_opt/bayesian_optimization.pyself._gp GaussianProcessRegressor( kernelwrap_kernel(Matern(nu2.5), transformself._space.kernel_transform), alpha1e-6, normalize_yTrue, n_restarts_optimizer5, random_stateself._random_state, )要点解读核函数选用Matern(nu2.5)这是贝叶斯优化中非常常用的平滑性假设折中方案alpha1e-6为观测噪声项normalize_yTrue对目标值做归一化n_restarts_optimizer5让核超参的极大似然估计从 5 个随机起点重启降低陷入局部最优的概率wrap_kernel负责把浮点空间的参数变换为核空间使用的表示见 bayes_opt/parameter.py这是后续支持整数/类别参数的关键基础设施。3. 采集函数Acquisition Function驱动下一采样点后验分布需要与一个**探索策略采集函数**结合才能决定下一个该采样的点。文档首页明确点名了两个代表UCBUpper Confidence Bound上置信界与EIExpected Improvement期望提升。BayesianOptimization构造函数中有一个容易被忽略但很实用的默认行为bayes_opt/bayesian_optimization.pyif acquisition_function is None: if constraint is None: self._acquisition_function acquisition.UpperConfidenceBound(kappa2.576) else: self._acquisition_function acquisition.ExpectedImprovement(xi0.01)也就是说无约束问题默认用 UCBkappa2.576有约束问题默认自动切换为 EIxi0.01因为 UCB 本身不支持约束源码中 UCB 的suggest会抛出ConstraintNotSupportedError见 bayes_opt/acquisition.py。4. 代理优化问题最大化采集函数文档首页特别指出寻找下一个采样点本质上是一个代理优化问题proxy optimization problem——即最大化采集函数。这个问题虽然仍是难题但在计算上比优化原目标函数便宜得多因此可以使用常规优化工具解决。从源码看这一步的实现位于 bayes_opt/acquisition.py 的_acq_min先随机采样n_random10_000个点做粗筛廉价再取其中最优的n_smart10个作为起点若所有参数都是连续变量使用L-BFGS-B进行精细优化bayes_opt/acquisition.py若存在离散/类别参数则改用**差分进化Differential Evolution**处理混合整数问题并对连续维度再做一次确定性细化bayes_opt/acquisition.py。整个过程设计目标明确用最少的真实采样步数找到接近最优的参数组合。这一点决定了它的最佳适用场景——采样目标函数本身是极其昂贵的行为例如一次深度学习训练、一次 CFD 仿真。快速上手第一个最小可用示例文档首页的 Quick Index 将 examples/basic-tour.ipynb 列为入门第一课这里将其核心流程完整展开与 README.md 中 Basic Tour 一致它已经是一个可复制运行的完整示例。第 1 步定义待优化的黑盒函数def black_box_function(x, y): Function with unknown internals we wish to maximize. This is just serving as an example, for all intents and purposes think of the internals of this function, i.e.: the process which generates its output values, as unknown. return -x ** 2 - (y - 1) ** 2 1这个函数在x0, y1处取到理论最大值 1。请务必理解示例的意图真实场景中你并不知道函数的内部结构你只需要提供接受已知参数、返回实数的函数f即可。第 2 步实例化优化器并指定参数边界from bayes_opt import BayesianOptimization # Bounded region of parameter space pbounds {x: (2, 4), y: (-3, 3)} optimizer BayesianOptimization( fblack_box_function, pboundspbounds, random_state1, )pbounds是约束优化的前提每个参数都必须给出(min, max)元组。random_state1用于保证结果可复现。第 3 步调用 maximize 执行优化optimizer.maximize( init_points2, n_iter3, )其中两个参数的意义bayes_opt/bayesian_optimization.pyinit_points随机探索步数默认为 5。随机采样可以丰富探索空间帮助 GP 建立初步的全局视野n_iter贝叶斯优化正式迭代步数默认为 25。步数越多越可能逼近真正的最优值。运行后控制台会输出类似下面的日志由 bayes_opt/logger.py 的ScreenLogger渲染| iter | target | x | y | ------------------------------------------------- | 1 | -7.135 | 2.834 | 1.322 | | 2 | -7.78 | 2.0 | -1.186 | | 3 | -19.0 | 4.0 | 3.0 | | 4 | -16.3 | 2.378 | -2.413 | | 5 | -4.441 | 2.105 | -0.005822 | 前 2 行对应init_points随机点后 3 行对应n_iter贝叶斯推荐点。第 4 步读取优化结果最优结果通过optimizer.max获取底层实现在 bayes_opt/target_space.py若存在约束则只统计满足约束的点print(optimizer.max) {target: -4.441293113411222, params: {y: -0.005822117636089974, x: 2.104665051994087}}全部探测记录通过optimizer.res获取底层实现见 bayes_opt/target_space.pyfor i, res in enumerate(optimizer.res): print(Iteration {}: \n\t{}.format(i, res)) Iteration 0: {target: -7.135455292718879, params: {y: 1.3219469606529488, x: 2.8340440094051482}} Iteration 1: {target: -7.779531005607566, params: {y: -1.1860045642089614, x: 2.0002287496346898}} Iteration 2: {target: -19.0, params: {y: 3.0, x: 4.0}} Iteration 3: {target: -16.29839645063864, params: {y: -2.412527795983739, x: 2.3776144540856503}} Iteration 4: {target: -4.441293113411222, params: {y: -0.005822117636089974, x: 2.104665051994087}}可以看到虽然初始随机点表现很差但仅仅几轮后贝叶斯优化就把采样点引导到了接近最优(0, 1)的位置——这正是用最少迭代逼近最优的直观体现。核心 API 与构造参数详解BayesianOptimization类的完整定义在 bayes_opt/bayesian_optimization.py构造函数签名如下BayesianOptimization( f, # 待最大化的目标函数 pbounds, # 参数名 - (min, max) 的字典 acquisition_functionNone, # 自定义采集函数默认见上节 constraintNone, # scipy.optimize.NonlinearConstraint random_stateNone, # int 或 numpy.random.RandomState verbose2, # 日志详细程度ScreenLogger bounds_transformerNone, # DomainTransformer 实例如 SDR allow_duplicate_pointsFalse # 是否允许注册重复点 )各参数要点如下表参数默认值说明f必填目标函数接受**kwargs风格的参数名并返回实数pbounds必填每个参数的边界元组约束优化的基础acquisition_functionNone无约束默认UCB(kappa2.576)有约束默认EI(xi0.01)constraintNonescipyNonlinearConstraint约束函数参数名必须与f一致random_stateNoneint 时作为种子构造RandomState提供实例则直接使用verbose2控制ScreenLogger的打印详细程度bounds_transformerNone传入DomainTransformer时在迭代中动态调整边界allow_duplicate_pointsFalseTrue时允许注册重复点适用于高噪声场景面向工程的方法族除maximize外类中还提供了一批供精细控制的方法probe(params, lazyTrue)bayes_opt/bayesian_optimization.py在指定点评估目标函数。lazyTrue时点被放入内部队列在下次调用maximize时统一评估lazyFalse时立即评估并记录日志。可用于人工引导优化器例如先探测某些已知较好的区域。register(params, target, constraint_valueNone)bayes_opt/bayesian_optimization.py直接注册已知目标值的观测适用于离线数据回灌。suggest()bayes_opt/bayesian_optimization.py只返回下一个推荐点而不评估配合probe(lazyFalse)可手写优化循环是实现异步/并行优化的基础。predict(params, return_stdFalse, return_covFalse, fit_gpTrue)bayes_opt/bayesian_optimization.py用内部 GP 对任意参数做预测可返回均值、标准差或协方差常用于可视化后验分布。set_bounds(new_bounds)bayes_opt/bayesian_optimization.py动态修改搜索边界域缩减的内部入口。set_gp_params(**params)bayes_opt/bayesian_optimization.py透传设置内部GaussianProcessRegressor参数传入kernel时自动包裹kernel_transform。save_state(path)/load_state(path)bayes_opt/bayesian_optimization.py将完整优化状态已采样点、目标值、GP 参数、采集函数参数、随机状态、变换后边界等序列化为 JSON支持断点续跑与实验恢复。一个需要注意的坑maximize 结束后的 GP 未必在所有点上拟合maximize的 docstring 里有一条显式警告bayes_opt/bayesian_optimization.py优化循环只在基于采集函数推荐新点时才拟合 GP因此优化结束时 GP 可能并未在全部已注册点上完成拟合。如果你要在优化完成后使用 GP 模型如调用predict务必显式传入fit_gpTrue否则会因零观测点而抛出RuntimeError见 bayes_opt/bayesian_optimization.py。采集函数体系探索与利用的调控旋钮文档首页把采集函数称为贝叶斯优化的核心构建块central building blockQuick Index 专门指向 examples/acquisition_functions.ipynb。仓库的 bayes_opt/acquisition.py 实现了完整的采集函数族基础采集函数Base Acquisition FunctionsUCB上置信界UCB(x) μ(x) κ·σ(x)。kappa调控探索/利用权衡——kappa越小越偏向利用local 挖掘越大越偏向探索uncertainty 驱动。代码见 bayes_opt/acquisition.py。额外支持exploration_decay每轮对kappa做指数衰减实现前期多探索、后期多利用与exploration_decay_delay延迟衰减开始的轮数衰减在每次suggest()末尾自动触发bayes_opt/acquisition.py。EI期望提升EI(x) (μ(x) − y_max − ξ)·Φ(z) σ(x)·φ(z)其中z (μ(x) − y_max − ξ)/σ(x)Φ/φ分别为标准正态的 CDF/PDF。与 POI 只关心是否提升不同EI 还考虑提升的幅度。xi为探索参数默认在约束场景下取0.01。实现见 bayes_opt/acquisition.py。POI提升概率POI(x) Φ((μ(x) − y_max − ξ)/σ(x))只度量超过当前最优的概率。实现见 bayes_opt/acquisition.py。元采集函数Meta Acquisition FunctionsConstantLiar常撒谎者用于异步/并行优化。它在目标空间的一份拷贝上注册尚未被评估的已推荐点dummies并以strategymin/mean/max或自定义浮点值填充虚拟目标值使这些点附近的预测方差下降从而降低多个 worker 重复推荐同一位置的概率。实现见 bayes_opt/acquisition.py。对应的实战脚本是 examples/async_optimization.py 与 examples/async_optimization_dummies.py。GPHedgePortfolio 式多策略组合同时维护多个基础采集函数每个建议步骤让它们各自提出候选点依据历史**累积收益gains**用 softmax 加权随机选出最终候选动态决定当前阶段谁更好用。实现见 bayes_opt/acquisition.py。此外AcquisitionFunction基类bayes_opt/acquisition.py是所有采集函数的抽象基类允许用户继承并实现自己的base_acq(mean, std)与get/set_acquisition_params来定制策略——文档首页与 docsrc/reference/acquisition.rst 都对此有专门说明。配套的测试位于 tests/test_acquisition.py。约束优化在不满足约束的条件下罚掉候选点文档首页明确项目是约束全局优化包Quick Index 中对应的示例为 examples/constraints.ipynb。约束支持的技术依据是 Gardner 等人 2014 年的论文《Bayesian optimization with inequality constraints》引用条目见文档首页详见文末引用节。使用方式通过scipy.optimize.NonlinearConstraint传入约束注意约束函数的参数名必须与目标函数f完全一致from scipy.optimize import NonlinearConstraint from bayes_opt import BayesianOptimization # 约束x y 必须小于 3 constraint NonlinearConstraint(lambda x, y: x y, -np.inf, 3) optimizer BayesianOptimization( fblack_box_function, pbounds{x: (2, 4), y: (-3, 3)}, constraintconstraint, random_state1, ) optimizer.maximize(init_points2, n_iter5)底层原理TargetSpace在构造时把NonlinearConstraint包装为ConstraintModelbayes_opt/target_space.pyConstraintModelbayes_opt/constraint.py为每个约束分量维护一个独立的 GP 回归器同样使用Matern(nu2.5)核用于预测候选点满足约束的概率在采集函数的最小化目标中负的采集函数值会乘以约束满足概率bayes_opt/acquisition.py从而让大概率违约的点被自动罚掉若存在多个约束分量ConstraintModel假设分量之间条件独立整体满足概率为各分量概率的乘积见 bayes_opt/constraint.py 的 docstring 说明optimizer.max与optimizer.res在约束场景下只统计/标记满足约束的点mask逻辑见 bayes_opt/target_space.py。当约束存在且用户显式指定了不支持约束的采集函数如 UCB时运行时会抛出ConstraintNotSupportedError此时建议改用默认自动切换的ExpectedImprovement或自定义支持约束的采集函数。对应测试见 tests/test_constraint.py。参数类型从连续浮点扩展到整数与类别变量文档首页 Quick Index 指出如果要在整数值或类别参数上做优化请参考 examples/parameter_types.ipynb。这背后的技术依据是 Garrido-Merchán 与 Hernández-Lobato 2020 年的论文引用见文末。TargetSpace.make_params会自动根据pbounds的写法推断参数类型bayes_opt/target_space.py连续浮点参数{x: (2, 4)}或{x: (2, 4, float)}→FloatParameter整数参数{x: (2, 4, int)}→IntParameter类别参数{x: [red, green, blue]}→CategoricalParameter。各类参数的基类BayesParameter定义在 bayes_opt/parameter.py它要求子类实现三个关键接口to_float将参数值编码为浮点数组、to_param将浮点数组解码回原始表示、kernel_transform变换后送入 GP 核这正是类别/整数变量也能喂给高斯过程的实现桥梁。当存在非浮点参数时运行时会打印一条实验性提示见 bayes_opt/target_space.py。对应测试见 tests/test_parameter.py。顺序域缩减Sequential Domain Reduction让搜索边界越缩越准文档首页 Quick Index 建议通过 examples/domain_reduction.ipynb 了解动态改变参数边界以加速搜索。该功能的技术依据是 Stander 与 Craig 2002 年的论文《On the robustness of a simple domain reduction scheme for simulation-based optimization》引用见文末。使用方法from bayes_opt import BayesianOptimization from bayes_opt.domain_reduction import SequentialDomainReductionTransformer bounds_transformer SequentialDomainReductionTransformer() optimizer BayesianOptimization( fblack_box_function, pbounds{x: (2, 4), y: (-3, 3)}, bounds_transformerbounds_transformer, random_state1, ) optimizer.maximize(init_points2, n_iter10)参数与机制SequentialDomainReductionTransformer的构造参数bayes_opt/domain_reduction.py参数默认值含义gamma_osc0.7用于抑制振荡oscillation的缩放系数gamma_pan1.0用于平移跟随panning的缩放系数通常为 1eta0.9收缩zooming参数控制关注区域缩小的速率minimum_window0.0每个参数的最小窗口宽度可为标量/数组/字典其核心机制_update与transform见 bayes_opt/domain_reduction.py 与 bayes_opt/domain_reduction.py每轮迭代以当前最优参数为中心按收缩率r重新划定新窗口收缩率由振荡项与平移项共同决定若当前最优相对上一轮最优方向反转振荡gamma_osc抑制收缩若持续同向移动平移则保持或扩大窗口以跟上最优点的漂移新窗口会被_trim修剪回全局边界并保证不小于minimum_windowbayes_opt/domain_reduction.py。值得注意的是域缩减仅支持全FloatParameter场景若参数空间中存在非浮点参数会抛出ValueErrorbayes_opt/domain_reduction.py。对应测试见 tests/test_seq_domain_red.py。在maximize循环中域缩减只在真正的贝叶斯迭代轮次iteration 0生效随机初始化阶段不会被触碰bayes_opt/bayesian_optimization.py。进阶与工程实践1. 用 predict 做 1D 可视化理解算法在做什么文档首页 Quick Index 推荐了 examples/visualization.ipynb其核心正是predict(return_stdTrue)用内部 GP 对一维参数网格输出后验均值与置信区间逐帧展示后验如何逼近真实函数、采集函数如何选择下一个点。这也是理解上文工作原理一节最直观的路径。2. 超参数调优与交叉验证结合examples/sklearn_example.py 演示了如何用贝叶斯优化做机器学习模型的超参数搜索目标函数内部完成交叉验证并返回验证分数负误差pbounds覆盖如n_estimators、max_depth等超参。这正是单次采样一次完整训练很昂贵的典型场景。3. 分布式/异步优化文档首页 Quick Index 最后指向 examples/async_optimization.py其中suggest()probe(lazyFalse)的模式配合ConstantLiar采集函数可以在多个 worker 并行采样的同时让每个新建议尽量避开已被推荐但尚未评估的点避免多个 worker 撞车。4. 重复点策略与状态持久化高噪声场景下反复探测同一参数点可能得到不同结果此时可设置allow_duplicate_pointsTruebayes_opt/bayesian_optimization.py否则注册重复点会抛出NotUniqueErrorbayes_opt/target_space.py。长耗时优化建议配合save_state/load_state定期存档防止中途失败导致全部采样浪费。学习路径速查从入门到进阶的官方材料文档首页 Quick Index 给出的学习路线映射到仓库中的实际文件如下全部为仓库内相对路径可直接打开阅读主题仓库文件入门最常用功能examples/basic-tour.ipynb进阶让包更灵活、使用观察者observersexamples/advanced-tour.ipynb采集函数贝叶斯优化的核心构件examples/acquisition_functions.ipynb整数值/类别参数examples/parameter_types.ipynb逐步可视化算法工作方式examples/visualization.ipynb存在附加约束时的用法examples/constraints.ipynb动态改变边界加速搜索examples/domain_reduction.ipynb探索与利用的平衡与控制examples/exploitation_vs_exploitation.ipynb机器学习模型超参调优交叉验证examples/sklearn_example.py分布式/异步优化examples/async_optimization.py此外docsrc/reference/ 目录按模块组织了完整的 API 参考文档bayes_opt总览docsrc/reference/bayes_opt.rst、采集函数docsrc/reference/acquisition.rst以及 UCB/EI/POI/GPHedge/ConstantLiar 各单页、约束docsrc/reference/constraint.rst、域缩减docsrc/reference/domain_reduction.rst、目标空间docsrc/reference/target_space.rst、参数docsrc/reference/parameter.rst与异常docsrc/reference/exception.rst。引用规范文档首页在 Citation 一节给出了明确的引用要求若在你的研究中使用本包请引用Misc{, author{Fernando Nogueira}, title{{Bayesian Optimization}: Open source constrained global optimization tool for {Python}}, year{2014--}, urlhttps://github.com/bayesian-optimization/BayesianOptimization }若使用了进阶功能请额外引用对应论文顺序域缩减SequentialDomainTransformerarticle{ author{Stander, Nielen and Craig, Kenneth}, year{2002}, month{06}, pages{}, title{On the robustness of a simple domain reduction scheme for simulation-based optimization}, volume{19}, journal{International Journal for Computer-Aided Engineering and Software (Eng. Comput.)}, doi{10.1108/02644400210430190} }约束优化inproceedings{gardner2014bayesian, title{Bayesian optimization with inequality constraints.}, author{Gardner, Jacob R and Kusner, Matt J and Xu, Zhixiang Eddie and Weinberger, Kilian Q and Cunningham, John P}, booktitle{ICML}, volume{2014}, pages{937--945}, year{2014} }非浮点参数优化article{garrido2020dealing, title{Dealing with categorical and integer-valued variables in bayesian optimization with gaussian processes}, author{Garrido-Merch{\a}n, Eduardo C and Hern{\a}ndez-Lobato, Daniel}, journal{Neurocomputing}, volume{380}, pages{20--35}, year{2020}, publisher{Elsevier} }小结本文以官方文档首页为骨架完整覆盖了 BayesianOptimization 的定位、安装、工作原理与快速上手并深入源码层梳理了BayesianOptimization主类 API、采集函数体系UCB/EI/POI/ConstantLiar/GPHedge、约束建模、整数/类别参数支持与顺序域缩减等进阶能力。核心要点可概括为一句话这个库用高斯过程构建目标函数的后验再用一个便宜的代理优化问题最大化采集函数来决定下一个昂贵采样点从而以尽可能少的真实采样逼近全局最优。如果你的场景中采样代价高昂、且需要显式平衡探索与利用它就是一套开箱即用、同时具备良好扩展性的方案。赞分享机器学习【免费下载链接】BayesianOptimizationA Python implementation of global optimization with gaussian processes.项目地址https://gitcode.com/gh_mirrors/ba/BayesianOptimization点击查看免费下载相关推荐BayesianOptimization基于高斯过程的全局优化神器BayesianOptimization基于高斯过程的全局优化神器 BayesianOptimization 是一个基于贝叶斯推断和高斯过程的全局优化库专为机器学习BayesianOptimization基于高斯过程的贝叶斯全局优化库全面解析BayesianOptimization基于高斯过程的贝叶斯全局优化库全面解析 BayesianOptimization 是一个基于 Python 的纯实现贝机器学习终极指南如何利用贝叶斯优化实现高效参数调优——高斯过程与贝叶斯推断基础终极指南如何利用贝叶斯优化实现高效参数调优——高斯过程与贝叶斯推断基础 贝叶斯优化Bayesian Optimization是一种基于高斯过程和贝叶斯推断机器学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Cursor插件开发核心原理:从plugin.json契约到中文支持全链路

Cursor插件开发核心原理:从plugin.json契约到中文支持全链路

1. “plugins”不是功能菜单,而是Cursor生态的神经中枢你第一次点开Cursor右下角那个小齿轮图标,看到“Plugins”选项时,大概率会下意识把它当成VS Code里那种“装个插件就能用”的附加模块——点开、搜索、安装、重启,完事。但实…

2026/10/4 3:28:43 阅读更多 →
漏洞报告写得长,不代表证据充分:GitHub 结构化报告与安全验证流水线

漏洞报告写得长,不代表证据充分:GitHub 结构化报告与安全验证流水线

漏洞报告写得长,不代表证据充分:GitHub 结构化报告与安全验证流水线 一、最新变化及其适用范围 GitHub 官方公告于 2026-10-01 发布:默认报告包含摘要、详情、PoC 和影响四项;维护者可以通过 .github/VULNERABILITY_REPORT.yml …

2026/10/4 3:28:43 阅读更多 →
动态AR-KF:用卡尔曼滤波实时校准时间序列模型

动态AR-KF:用卡尔曼滤波实时校准时间序列模型

简介:本资源是一份面向数据科学初学者与MATLAB实践者的AR时间序列建模与卡尔曼滤波融合学习包,聚焦于AR(1)模型的状态估计与噪声抑制问题,适用于金融预测、信号处理、控制系统等场景。压缩包共2个文件(1个MATLAB脚本ARl.m用于实现…

2026/10/4 3:27:41 阅读更多 →

最新新闻

怎么把kgm转mp3?4种方法详细教程,新手也能跟着做

怎么把kgm转mp3?4种方法详细教程,新手也能跟着做

前段时间收拾电脑,发现酷狗音乐文件夹里攒了快200首歌,全是kgm格式。想拷到车载U盘里放,结果插上去根本不认。又试着发给朋友,微信直接提示格式不支持。这才意识到,kgm转mp3这事不解决不行了。 网上搜了一圈&#xff…

2026/10/4 4:00:03 阅读更多 →
C语言工程级教程:从编译错误到内存管理的完整链路

C语言工程级教程:从编译错误到内存管理的完整链路

1. 这份“13万字C语言保姆级教程”到底在解决什么真实问题?你有没有试过打开一本标着“从入门到精通”的C语言书,翻到第三章指针部分,突然发现前面讲的变量、内存地址、地址运算这些概念,像一层层没拆封的快递——你知道它里面肯定…

2026/10/4 4:00:03 阅读更多 →
51单片机红外寻迹小车:状态机与PWM时序协同设计

51单片机红外寻迹小车:状态机与PWM时序协同设计

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

2026/10/4 4:00:03 阅读更多 →
从冯诺依曼体系到Linux进程:掌握操作系统核心概念与进程管理

从冯诺依曼体系到Linux进程:掌握操作系统核心概念与进程管理

很多人翻Linux入门教程,看到“冯诺漫系统”五个字,第一反应是:这又是哪个外国人的名字?其实就是冯诺依曼(von Neumann),那个提出二进制、参与计算机架构设计的数学家。在Linux和操作系统的基础学…

2026/10/4 4:00:03 阅读更多 →
用 Tauri + Rust 做本地部署生产管理系统「轻排 PMClite」的架构思路

用 Tauri + Rust 做本地部署生产管理系统「轻排 PMClite」的架构思路

最近在做一个面向中小制造企业的生产管理系统,代号「轻排 PMClite」。做到现在有一些架构层面的思考,记录一下,供有类似需求的同学参考。文章不谈具体实现细节,主要聊技术选型的逻辑和踩过的坑。一、轻排 PMClite 是什么先给结论&…

2026/10/4 4:00:03 阅读更多 →
pdf2skill 实战:计算机视觉初学者如何把 PDF 文档变成 AI 技能包并接入 TaoToken

pdf2skill 实战:计算机视觉初学者如何把 PDF 文档变成 AI 技能包并接入 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/4 3:59:02 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/2 10:36:31 阅读更多 →
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/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练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/3 9:42:36 阅读更多 →