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)
计算方阵的下-上分解。
参数
(..., M, M)
的张量。返回
(..., M, M)
的张量,包含下三角矩阵和上三角矩阵;以及一个形状为 (..., M)
的张量,包含主元。norm
函数keras.ops.norm(x, ord=None, axis=None, keepdims=False)
矩阵或向量范数。
此函数能够返回八种不同的矩阵范数之一,或无限数量的向量范数之一(如下所述),具体取决于 ord
参数的值。
参数
None
。axis
是整数,则指定 x
中沿其计算向量范数的轴。如果 axis
是 2 元组,则指定包含 2D 矩阵的轴,并计算这些矩阵的矩阵范数。True
,则被缩减的轴将保留在结果中,作为大小为 1 的维度。注意:对于 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)
的张量,包含右奇异向量。