cholesky
functionkeras.ops.cholesky(x)
计算半正定矩阵的Cholesky分解.
参数:
x: 形状为 (..., M, M)
的输入张量.
返回:
形状为 (..., M, M)
的张量,表示 x
的下三角Cholesky因子.
det
functionkeras.ops.det(x)
计算方阵张量的行列式.
参数:
x: 形状为 (..., M, M)
的输入张量.
返回:
形状为 (...,)
的张量,表示 x
的行列式.
eig
functionkeras.ops.eig(x)
计算方阵的特征值和特征向量.
参数:
x: 形状为 (..., M, M)
的输入张量.
返回:
包含两个张量的元组:一个形状为 (..., M)
的张量,包含特征值,和一个形状为 (..., M, M)
的张量,包含特征向量.
inv
functionkeras.ops.inv(x)
计算一个方阵张量的逆.
参数:
x: 形状为 (..., M, M)
的输入张量.
返回:
形状为 (..., M, M)
的张量,表示 x
的逆.
lu_factor
functionkeras.ops.lu_factor(x)
计算一个方阵的LU分解.
参数:
x: 形状为(..., M, M)
的张量.
返回:
一个包含两个张量的元组:一个形状为(..., M, M)
的张量,包含下三角矩阵和上三角矩阵,以及一个形状为(..., M)
的张量,包含枢轴.
norm
functionkeras.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
qr
functionkeras.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)
solve
functionkeras.ops.solve(a, b)
解决由 a x = b
给出的线性方程组.
参数:
a: 形状为 (..., M, M)
的张量,表示系数矩阵.
b: 形状为 (..., M)
或 (..., M, N)
的张量,表示右端或"因变量”矩阵.
返回:
形状为 (..., M)
或 (..., M, N)
的张量,表示线性方程组的解.返回的形状与 b
相同.
solve_triangular
functionkeras.ops.solve_triangular(a, b, lower=False)
解决由 a x = b
给出的线性方程组.
参数:
a: 形状为 (..., M, M)
的张量,表示系数矩阵.
b: 形状为 (..., M)
或 (..., M, N)
的张量,表示右端或"因变量”矩阵.
返回:
形状为 (..., M)
或 (..., M, N)
的张量,表示线性方程组的解.返回的形状与 b
相同.
svd
functionkeras.ops.svd(x, full_matrices=True, compute_uv=True)
计算矩阵的奇异值分解.
参数:
x: 形状为 (..., M, N)
的输入张量.
返回:
一个包含三个张量的元组:形状为 (..., M, M)
的左奇异向量张量,形状为 (..., M, N)
的奇异值张量,以及形状为 (..., N, N)
的右奇异向量张量.