MindSpore

MindSpore Python API

  • mindspore
  • mindspore.common.initializer
  • mindspore.communication
  • mindspore.compression
  • mindspore.context
  • mindspore.dataset
  • mindspore.dataset.audio
  • mindspore.dataset.config
  • mindspore.dataset.text
  • mindspore.dataset.transforms
  • mindspore.dataset.vision
  • mindspore.mindrecord
  • mindspore.nn
  • mindspore.nn.probability
  • mindspore.nn.transformer
  • mindspore.numpy
  • mindspore.ops
  • mindspore.parallel
  • mindspore.parallel.nn
  • mindspore.profiler
  • mindspore.scipy
    • mindspore.scipy.linalg
    • mindspore.scipy.optimize
      • mindspore.scipy.optimize.line_search
      • mindspore.scipy.optimize.minimize
    • mindspore.scipy.sparse.linalg
  • mindspore.train
  • mindspore.boost (experimental)

MindSpore C++ API

  • MindSpore Lite↗
MindSpore
  • »
  • mindspore.scipy »
  • mindspore.scipy.optimize.line_search
  • View page source

mindspore.scipy.optimize.line_search

mindspore.scipy.optimize.line_search(f, xk, pk, gfk=None, old_fval=None, old_old_fval=None, c1=0.0001, c2=0.9, maxiter=20)[source]

Inexact line search that satisfies strong Wolfe conditions.

Algorithm 3.5 from Wright and Nocedal, ‘Numerical Optimization’, 1999, pg. 59-61

Parameters
  • f (function) – function of the form f(x) where x is a flat Tensor and returns a real scalar. The function should be composed of operations with vjp defined.

  • xk (Tensor) – initial guess.

  • pk (Tensor) – direction to search in. Assumes the direction is a descent direction.

  • gfk (Tensor) – initial value of value_and_gradient as position. Default: None.

  • old_fval (Tensor) – The same as gfk. Default: None.

  • old_old_fval (Tensor) – unused argument, only for scipy API compliance. Default: None.

  • c1 (float) – Wolfe criteria constant, see ref. Default: 1e-4.

  • c2 (float) – The same as c1. Default: 0.9.

  • maxiter (int) – maximum number of iterations to search. Default: 20.

Returns

LineSearchResults, results of line search results.

Supported Platforms:

CPU GPU

Examples

>>> import numpy as onp
>>> from mindspore.scipy.optimize import line_search
>>> from mindspore.common 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)
>>> res.a_k
1.0
Previous Next

© Copyright MindSpore.

Built with Sphinx using a theme provided by Read the Docs.