sciai.common.LbfgsOptimizer
- class sciai.common.LbfgsOptimizer(closure, weights)[源代码]
L-BFGS 二阶优化器,目前仅在 PYNATIVE_MODE 中支持。
- 参数:
closure (Callable) - 返回损失的函数。
weights (list[Parameter]) - 需要优化的参数。
- 输入:
options (映射[str,任何]) - 参考 mindspore.scipy.minimize。
- 输出:
OptimizeResults,保存优化结果的对象。
- 支持平台:
GPU
CPU
Ascend
样例:
>>> import mindspore as ms >>> from mindspore import nn, ops >>> from sciai.architecture.basic_block import NoArgNet >>> from sciai.common import LbfgsOptimizer >>> ms.set_seed(1234) >>> class Net1In1Out(nn.Cell): >>> def __init__(self): >>> super().__init__() >>> self.dense1 = nn.Dense(2, 1) >>> def construct(self, x): >>> return self.dense1(x).sum() >>> net = Net1In1Out() >>> x = ops.ones((3, 2), ms.float32) >>> cell = NoArgNet(net, x) >>> optim_lbfgs = LbfgsOptimizer(cell, list(cell.trainable_params())) >>> res = optim_lbfgs.construct(options=dict(maxiter=None, gtol=1e-6)) >>> print(res.x) [0.00279552 0.00540159 0. ]