MindSpore
  • mindspore
  • mindspore.ops
  • mindspore.nn
  • mindspore.mint
  • mindspore.common.initializer
  • mindspore.amp
  • mindspore.train
  • mindspore.parallel
  • mindspore.runtime
  • mindspore.device_context
  • mindspore.communication
  • mindspore.dataset
  • mindspore.numpy
  • mindspore.scipy
  • mindspore.multiprocessing
  • mindspore.utils
  • mindspore.experimental
  • mindspore.ops.primitive
  • mindspore.boost
  • mindspore.nn.probability
  • mindspore.rewrite
  • mindspore.hal
  • 环境变量
  • PyTorch与MindSpore API映射表
MindSpore
  • »
  • API 文档 »
  • mindspore.scipy »
  • mindspore.scipy.optimize.line_search
  • 查看页面源码

mindspore.scipy.optimize.line_search

mindspore.scipy.optimize.line_search(f, xk, pk, jac=None, gfk=None, old_fval=None, old_old_fval=None, c1=1e-4, c2=0.9, maxiter=20)[源代码]

满足强Wolfe条件的非精确线搜索。

来自Wright和Nocedal,'Numerical Optimization',1999,第59-61页,算法3.5章节。

说明

Windows平台上还不支持 line_search。

参数:
  • f (function) - 形式为f(x)的函数,其中x是一个扁平Tensor,并返回一个实数标量。 该函数应该由 vjp 定义的算子组成。

  • xk (Tensor) - 初始猜测。

  • pk (Tensor) - 要搜索的方向。假定方向是下降方向。

  • jac (function) - 求x处的梯度的函数,其中x是一个扁平的Tensor,函数返回一个Tensor。 如果要使用自动微分,则可以传 None。

  • gfk (Tensor) - value_and_gradient 作为位置的初始值。默认值:None。

  • old_fval (Tensor) - 同 gfk。默认值:None。

  • old_old_fval (Tensor) - 未使用的参数,仅用于scipy API合规性。默认值:None。

  • c1 (float) - Wolfe准则常量,参见ref。默认值:1e-4。

  • c2 (float) - 与 c1 相同。默认值:0.9。

  • maxiter (int) - 搜索的最大迭代次数。默认值:20。

返回:

线搜索的结果。

支持平台:

GPU CPU

样例:

>>> import numpy as onp
>>> from mindspore.scipy.optimize import line_search
>>> from mindspore import Tensor
>>> x0 = Tensor(onp.ones(2).astype(onp.float32))
>>> p0 = Tensor(onp.array([-1, -1]).astype(onp.float32))
>>> def func(x):
...     return x[0] ** 2 - x[1] ** 3
>>> res = line_search(func, x0, p0)
>>> print(res.a_k)
1.0
上一页 下一页

© 版权所有 MindSpore.

利用 Sphinx 构建,使用了 主题 由 Read the Docs开发.