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.        ]