cholesky
函數keras.ops.cholesky(x)
計算正半定矩陣的 Cholesky 分解。
參數
(..., M, M)
的輸入張量。返回
形狀為 (..., M, M)
的張量,表示 x
的下三角 Cholesky 因子。
det
函數keras.ops.det(x)
計算方陣張量的行列式。
參數
(..., M, M)
的輸入張量。返回
形狀為 (...,)
的張量,表示 x
的行列式。
eig
函數keras.ops.eig(x)
計算方陣的特徵值和特徵向量。
參數
(..., M, M)
的輸入張量。返回
(..., M)
包含特徵值的張量,以及一個形狀為 (..., M, M)
包含特徵向量的張量。eigh
函數keras.ops.eigh(x)
計算複 Hermitian 矩陣的特徵值和特徵向量。
參數
(..., M, M)
的輸入張量。返回
(..., M)
包含特徵值的張量,以及一個形狀為 (..., M, M)
包含特徵向量的張量。inv
函數keras.ops.inv(x)
計算方陣張量的逆矩陣。
參數
(..., M, M)
的輸入張量。返回
形狀為 (..., M, M)
的張量,表示 x
的逆矩陣。
logdet
函數keras.ops.logdet(x)
計算 Hermitian 正定矩陣的行列式對數。
參數
返回
矩陣行列式的自然對數。
lstsq
函數keras.ops.lstsq(a, b, rcond=None)
返回線性矩陣方程式的最小平方解。
計算向量 x,近似求解方程式 a @ x = b
。該方程式可能是欠定、適定或超定的(即,a 的線性獨立行數可能小於、等於或大於其線性獨立列數)。如果 a 是方陣且滿秩,則 x
(但有捨入誤差)是方程式的精確解。否則,x
會最小化 b - a * x
的 L2 範數。
如果有多個最小化解,則返回 L2 範數最小的解。
參數
(M, N)
的「係數」矩陣。(M,)
或 (M, K)
。如果 b
是二維的,則為 b
的每個 K 列計算最小平方解。a
的小奇異值的截止比率。為了確定秩,如果奇異值小於 rcond 乘以 a
的最大奇異值,則將奇異值視為零。返回
形狀為 (N,)
或 (N, K)
的張量,包含最小平方解。
注意: 輸出與 numpy.linalg.lstsq
不同。NumPy 返回一個包含四個元素的元組,其中第一個是最小平方解,其他基本上從未使用。Keras 僅返回第一個值。這樣做既是為了確保跨後端的一致性(其他值無法實現),也是為了簡化 API。
lu_factor
函數keras.ops.lu_factor(x)
計算方陣的 LU 分解。
參數
(..., M, M)
的張量。返回
(..., M, M)
的張量,包含下三角矩陣和上三角矩陣,以及一個形狀為 (..., M)
的張量,包含主元。norm
函數keras.ops.norm(x, ord=None, axis=None, keepdims=False)
矩陣或向量範數。
此函數能夠返回八種不同的矩陣範數之一,或無限數量的向量範數之一(如下所述),具體取決於 ord
參數的值。
參數
None
。axis
是整數,則指定 x
的軸,沿該軸計算向量範數。如果 axis
是 2 元組,則指定保存 2D 矩陣的軸,並計算這些矩陣的矩陣範數。True
,則縮減的軸將保留在結果中,作為大小為一的維度。注意:對於 ord < 1
的值,嚴格來說,結果不是數學上的「範數」,但它可能仍然對各種數值目的有用。可以計算以下範數: - 對於矩陣: - ord=None
:Frobenius 範數 - ord="fro"
:Frobenius 範數 - ord="nuc"
:核範數 - ord=np.inf
:max(sum(abs(x), axis=1))
- ord=-np.inf
:min(sum(abs(x), axis=1))
- ord=0
:不支援 - ord=1
:max(sum(abs(x), axis=0))
- ord=-1
:min(sum(abs(x), axis=0))
- ord=2
:2-範數(最大奇異值)- ord=-2
:最小奇異值 - 其他:不支援 - 對於向量: - ord=None
:2-範數 - ord="fro"
:不支援 - ord="nuc"
:不支援 - ord=np.inf
:max(abs(x))
- ord=-np.inf
:min(abs(x))
- ord=0
:sum(x != 0)
- ord=1
:如下 - ord=-1
:如下 - ord=2
:如下 - ord=-2
:如下 - 其他:sum(abs(x)**ord)**(1./ord)
返回
矩陣或向量的範數。
範例
>>> x = keras.ops.reshape(keras.ops.arange(9, dtype="float32") - 4, (3, 3))
>>> keras.ops.linalg.norm(x)
7.7459664
qr
函數keras.ops.qr(x, mode="reduced")
計算張量的 QR 分解。
參數
(..., M, N)
的輸入張量。返回
包含兩個張量的元組。第一個形狀為 (..., M, K)
的張量是正交矩陣 q
,第二個形狀為 (..., K, N)
的張量是上三角矩陣 r
,其中 K = min(M, N)
。
範例
>>> x = keras.ops.convert_to_tensor([[1., 2.], [3., 4.], [5., 6.]])
>>> q, r = qr(x)
>>> print(q)
array([[-0.16903079 0.897085]
[-0.5070925 0.2760267 ]
[-0.8451542 -0.34503305]], shape=(3, 2), dtype=float32)
solve
函數keras.ops.solve(a, b)
求解由 a x = b
給出的線性方程式系統。
參數
(..., M, M)
的張量,表示係數矩陣。(..., M)
或 (..., M, N)
的張量,表示右手邊或「應變數」矩陣。返回
形狀為 (..., M)
或 (..., M, N)
的張量,表示線性系統的解。返回的形狀與 b
相同。
solve_triangular
函數keras.ops.solve_triangular(a, b, lower=False)
求解由 a x = b
給出的線性方程式系統。
參數
(..., M, M)
的張量,表示係數矩陣。(..., M)
或 (..., M, N)
的張量,表示右手邊或「應變數」矩陣。返回
形狀為 (..., M)
或 (..., M, N)
的張量,表示線性系統的解。返回的形狀與 b
相同。
svd
函數keras.ops.svd(x, full_matrices=True, compute_uv=True)
計算矩陣的奇異值分解。
參數
(..., M, N)
的輸入張量。返回
(..., M, M)
的張量,包含左奇異向量;一個形狀為 (..., M, N)
的張量,包含奇異值;以及一個形狀為 (..., N, N)
的張量,包含右奇異向量。