當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。