尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

TorchOpt API参考速查:从优化器到Transform的完整函数地图

TorchOpt API参考速查:从优化器到Transform的完整函数地图 TorchOpt API参考速查从优化器到Transform的完整函数地图【免费下载链接】torchoptTorchOpt is an efficient library for differentiable optimization built upon PyTorch.项目地址: https://gitcode.com/gh_mirrors/to/torchoptTorchOpt是一个构建在 PyTorch 之上的高效可微优化differentiable optimization库提供 Optax 风格的功能式 API用梯度变换Transform自由组合出优化器并内置隐式梯度、零阶梯度等可微回传能力。本文整理 TorchOpt 从优化器、Transform 到工具函数、元优化的完整函数地图帮你 10 分钟定位任意 API。️ 一分钟看懂TorchOpt 的双模式 APITorchOpt 的所有 API 围绕一个核心抽象GradientTransformation定义在 torchopt/base.py展开——它是一对纯函数(init_fn, update_fn)init根据参数生成优化器状态update把梯度变换成最终更新量。风格入口特点源码位置功能式推荐opt.sgd(lr)、opt.adam(lr)等返回GradientTransformation可任意组合torchopt/alias/__init__.py面向对象opt.optim.Adam(model.parameters(), lr...)兼容torch.optim使用习惯torchopt/optim/__init__.py两种风格共享同一套 Transform 底层功能式风格还能无缝对接chain、clip_grad_norm等组合工具。 优化器API速查表8大预设两种调用方式TorchOpt 内置 8 类主流优化器功能式别名torchopt/alias/与面向对象类torchopt/optim/一一对应另有Meta*元优化变体支持二阶可微优化器功能式 APIOO 类元优化变体SGDopt.sgd(lr, momentum, nesterov)SGDMetaSGDAdaGradopt.adagrad(lr, eps)AdaGradMetaAdaGradAdaDeltaopt.adadelta(eps)AdaDeltaMetaAdaDeltaAdamopt.adam(lr, betas, eps)AdamMetaAdamAdamWopt.adamw(lr, betas, eps, wd)AdamWMetaAdamWAdaMaxopt.adamax(lr, betas)AdamaxMetaAdaMaxRAdamopt.radam(lr, betas, eps)RAdamMetaRAdamRMSPropopt.rmsprop(lr, decay, eps)RMSPropMetaRMSProp 元优化变体统一位于 torchopt/optim/meta/例如MetaAdam对超参数也保持可微是 MAML 等元学习算法的基础。 Transform梯度变换组件14个预设函数torchopt.transform模块torchopt/transform/init.py提供 14 个预设变换是搭建自定义优化器的乐高积木函数作用典型用途scale(step_size)按固定系数缩放更新量学习率scale_by_schedule(scheduler)按调度函数缩放学习率衰减scale_by_adam(betas, eps)Adam 自适应缩放组合 Adamscale_by_adamax(betas, eps)AdaMax 自适应缩放组合 AdaMaxscale_by_radam(betas, eps)RAdam 自适应缩放组合 RAdamscale_by_rms / scale_by_rss / scale_by_adadelta基于均方根等统计量缩放组合 RMS 类优化器scale_by_stddev按标准差缩放自适应学习率add_decayed_weights(wd)L2 权重衰减AdamW 组合masked(mask)按掩码屏蔽更新稀疏/冻结参数nan_to_num(nan, posinf, neginf)替换nan/inf梯度训练稳定性trace(order)一阶迹估计随机迹隐式梯度计算chain(*transforms)串联多个变换组装优化器 用 chain 一行组合优化器chaintorchopt/combine.py把多个 Transform 串成流水线再叠加clip_grad_normtorchopt/clip.py做梯度裁剪三行代码即可等价于一个带裁剪的 Adamimport torchopt as opt adam_with_clip opt.chain( opt.transform.scale(0.001), opt.transform.scale_by_adam(), opt.clip_grad_norm(1.0) )配套的opt.apply_updates(params, updates)torchopt/update.py负责把变换后的更新量写回参数支持inplace原地更新。⏱️ 调度器与实用工具函数学习率调度torchopt/schedule/init.pylinear_schedule、polynomial_schedule、exponential_decay可直接传给scale_by_schedule停梯度stop_gradienttorchopt/utils.py阻断对张量的反向传播是构建可微优化器时的关键技巧状态管理extract_state_dict/recover_state_dict用于取出和恢复模块状态module_clone/module_detach_提供模块克隆与原地 detach梯度 Hookregister_hook、nan_to_num_hook、zero_nan_hooktorchopt/hook.py在update前对梯度做自定义拦截PyTree 工具tree_map、tree_flatten等torchopt/pytree.py基于 optree 处理参数树结构。 元优化与三种可微回传模式TorchOpt 的最大亮点是可微优化把优化步骤本身也放进计算图。它提供三种回传模式源码位于 torchopt/diff/模式API原理适用场景显式梯度默认torch.autograd直接对整段优化代码求导步数少、结构简单隐式梯度opt.diff.implicit.custom_root、ImplicitMetaGradientModule隐函数梯度定理跳过展开步数多、内存友好iMAML零阶梯度opt.diff.zero_order.zero_order有限差分离散扰动估计黑箱、不可导场景配套模块 torchopt/nn/module.py 提供MetaGradientModule、ImplicitMetaGradientModule、ZeroOrderGradientModule以及reparameterize、swap_state等工具让你把任意nn.Module包装成支持元梯度回传的模块。以隐式 MAMLiMAML为例结合MetaSGD与custom_root训练出的 few-shot 模型在 Omniglot 上的精度曲线如下完整实现见 examples/iMAML/imaml_omniglot_functional.py 可视化与进阶模块计算图可视化make_dot、resize_graphtorchopt/visual.py用 Graphviz 渲染 TorchOpt 的计算图比 torchviz 更能保留元梯度结构加速算子torchopt.accelerated_op提供 CUDA 加速的 Adam 算子与torch.optim兼容可用opt.accelerated_op_available()检测线性求解torchopt/linalg/ 提供共轭梯度cg与非线性共轭梯度nstorchopt/linear_solve/ 封装solve_cg、solve_inv、solve_normal_cg用于隐式梯度的线性系统求解分布式训练torchopt/distributed/ 提供parallelize、parallelize_sync等 RPC 并行原语支持多进程并行训练元优化器参考 examples/distributed/few-shot/maml_omniglot.py。⚡ 速查小结我想……用什么快速搭建 Adamopt.chain(opt.transform.scale(lr), opt.transform.scale_by_adam())兼容 torch.optim 写法opt.optim.Adam(params, lr...)训练可微调的优化器opt.MetaAdam/MetaSGD减少长序列优化的显存opt.diff.implicit.custom_root处理黑箱不可导目标opt.diff.zero_order.zero_order裁剪 / 清洗梯度opt.clip_grad_norm(1.0)、opt.nan_to_num调试计算图opt.visual.make_dot所有公开 API 均从 torchopt/init.py 统一导出配套测试用例在 tests/ 目录下按模块一一对应如test_optim.py、test_transform.py、test_implicit.py可作为每个函数的用法示例快速查阅。【免费下载链接】torchoptTorchOpt is an efficient library for differentiable optimization built upon PyTorch.项目地址: https://gitcode.com/gh_mirrors/to/torchopt创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表