当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python SciPy optimize.check_grad用法及代码示例

本文简要介绍 python 语言中 scipy.optimize.check_grad 的用法。

用法:

scipy.optimize.check_grad(func, grad, x0, *args, epsilon=1.4901161193847656e-08, direction='all', seed=None)#

通过将梯度函数与梯度的(前向)有限差分近似进行比较来检查梯度函数的正确性。

参数

func 可调用func(x0, *args)

要检查其导数的函数。

grad 可调用grad(x0, *args)

函数的雅可比行列式。

x0 ndarray

使用 func 检查 grad 与 grad 的正向差分近似值的要点。

args *args,可选

传递给 func 和 grad 的额外参数。

epsilon 浮点数,可选

用于有限差分逼近的步长。它默认为 sqrt(np.finfo(float).eps) ,大约为 1.49e-08。

direction str,可选

如果设置为'random',然后使用沿随机向量的梯度来检查毕业反对使用前向差分近似函数。默认情况下是'all',在这种情况下,所有一个热方向向量都被认为是检查毕业.如果函数是一个向量值函数,那么只有'all'可以使用。

seed {无,int, numpy.random.Generator numpy.random.RandomState },可选

如果种子是无(或np.random), 这numpy.random.RandomState使用单例。如果种子是一个 int,一个新的RandomState使用实例,播种种子.如果种子已经是一个Generator或者RandomState实例然后使用该实例。指定种子用于重现此函数的返回值。使用此种子生成的随机数会影响计算梯度以检查的随机向量grad.注意种子仅在以下情况下使用方向参数设置为‘random’.

返回

err 浮点数

两者之差的平方和(即 2-范数)的平方根grad(x0, *args)和有限差分近似毕业在点处使用 funcx0.

例子

>>> import numpy as np
>>> def func(x):
...     return x[0]**2 - 0.5 * x[1]**3
>>> def grad(x):
...     return [2 * x[0], -1.5 * x[1]**2]
>>> from scipy.optimize import check_grad
>>> check_grad(func, grad, [1.5, -1.5])
2.9802322387695312e-08  # may vary
>>> rng = np.random.default_rng()
>>> check_grad(func, grad, [1.5, -1.5],
...             direction='random', seed=rng)
2.9802322387695312e-08

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.optimize.check_grad。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。