Keras 3 API 文档 / 操作API / 线性代数操作

线性代数操作

[source]

cholesky function

keras.ops.cholesky(x)

计算半正定矩阵的Cholesky分解.

参数: x: 形状为 (..., M, M) 的输入张量.

返回: 形状为 (..., M, M) 的张量,表示 x 的下三角Cholesky因子.


[source]

det function

keras.ops.det(x)

计算方阵张量的行列式.

参数: x: 形状为 (..., M, M) 的输入张量.

返回: 形状为 (...,) 的张量,表示 x 的行列式.


[source]

eig function

keras.ops.eig(x)

计算方阵的特征值和特征向量.

参数: x: 形状为 (..., M, M) 的输入张量.

返回: 包含两个张量的元组:一个形状为 (..., M) 的张量,包含特征值,和一个形状为 (..., M, M) 的张量,包含特征向量.


[source]

inv function

keras.ops.inv(x)

计算一个方阵张量的逆.

参数: x: 形状为 (..., M, M) 的输入张量.

返回: 形状为 (..., M, M) 的张量,表示 x 的逆.


[source]

lu_factor function

keras.ops.lu_factor(x)

计算一个方阵的LU分解.

参数: x: 形状为(..., M, M)的张量.

返回: 一个包含两个张量的元组:一个形状为(..., M, M)的张量,包含下三角矩阵和上三角矩阵,以及一个形状为(..., M)的张量,包含枢轴.


[source]

norm function

keras.ops.norm(x, ord=None, axis=None, keepdims=False)

矩阵或向量范数.

此函数能够返回八种不同的矩阵范数之一,或无数种向量范数之一(如下所述),具体取决于 ord 参数的值.

参数: x: 输入张量. ord: 范数的阶数(参见下面的注释表).默认值为 None. axis: 如果 axis 是整数,它指定计算向量范数的 x 的轴.如果 axis 是 2 元组,它指定保存 2-D 矩阵的轴,并计算这些矩阵的矩阵范数. keepdims: 如果设置为 True,则结果中会保留被缩减的轴,尺寸为 1.

注意: 对于 ord < 1 的值,严格来说,结果不是一个数学上的 '范数',但在各种数值用途上可能仍然有用.可以计算以下范数: - 对于矩阵: - ord=None: 弗罗贝尼乌斯范数 - ord="fro": 弗罗贝尼乌斯范数 - 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

[source]

qr function

keras.ops.qr(x, mode="reduced")

计算张量的QR分解.

参数: x: 形状为(..., M, N)的输入张量. mode: 一个字符串,指定QR分解的模式. - 'reduced': 返回缩减的QR分解.(默认) - 'complete': 返回完整的QR分解.

返回: 包含两个张量的元组.第一个张量的形状为(..., 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)

[source]

solve function

keras.ops.solve(a, b)

解决由 a x = b 给出的线性方程组.

参数: a: 形状为 (..., M, M) 的张量,表示系数矩阵. b: 形状为 (..., M)(..., M, N) 的张量,表示右端或"因变量”矩阵.

返回: 形状为 (..., M)(..., M, N) 的张量,表示线性方程组的解.返回的形状与 b 相同.


[source]

solve_triangular function

keras.ops.solve_triangular(a, b, lower=False)

解决由 a x = b 给出的线性方程组.

参数: a: 形状为 (..., M, M) 的张量,表示系数矩阵. b: 形状为 (..., M)(..., M, N) 的张量,表示右端或"因变量”矩阵.

返回: 形状为 (..., M)(..., M, N) 的张量,表示线性方程组的解.返回的形状与 b 相同.


[source]

svd function

keras.ops.svd(x, full_matrices=True, compute_uv=True)

计算矩阵的奇异值分解.

参数: x: 形状为 (..., M, N) 的输入张量.

返回: 一个包含三个张量的元组:形状为 (..., M, M) 的左奇异向量张量,形状为 (..., M, N) 的奇异值张量,以及形状为 (..., N, N) 的右奇异向量张量.