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)
计算复厄米矩阵的特征值和特征向量。
参数
(..., M, M)
的输入张量。返回值
(..., M)
的张量包含特征值,形状为 (..., M, M)
的张量包含特征向量。inv
函数keras.ops.inv(x)
计算方阵的逆矩阵。
参数
(..., M, M)
的输入张量。返回值
形状为 (..., M, M)
的张量,表示 x
的逆矩阵。
logdet
函数keras.ops.logdet(x)
计算厄米特正定矩阵的行列式的对数。
参数
返回值
矩阵行列式的自然对数。
lstsq
函数keras.ops.lstsq(a, b, rcond=None)
返回线性矩阵方程的最小二乘解。
计算近似求解方程 a @ x = b
的向量 x。该方程可以是欠定、适定或超定(即,a 的线性无关行的数量可以小于、等于或大于其线性无关列的数量)。如果 a 是方阵且满秩,则 x
(除了舍入误差外)是该方程的精确解。否则,x
使 b - a * x
的 L2 范数最小化。
如果存在多个最小化解,则返回 L2 范数最小的那个。
参数
(M, N)
的“系数”矩阵。(M,)
或 (M, K)
。如果 b
是二维的,则为 b
的每个 K 列计算最小二乘解。a
的小奇异值的截止比率。为了确定秩的目的,如果奇异值小于 a
的最大奇异值的 rcond 倍,则将其视为零。返回值
形状为 (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 元组,则指定保存二维矩阵的轴,并计算这些矩阵的矩阵范数。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)
返回值
矩阵或向量(s)的范数。
示例
>>> 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)
的张量包含右奇异向量。