TensorFlow计算方阵的Cholesky分解
2018-09-09 17:27 更新
tf.cholesky
cholesky (
input,
name = None
)
参考指南:数学函数>矩阵数学函数
计算一个或多个方阵的 Cholesky 分解.
输入是一个张量的形状:[..., M, M],其最内侧的2个维形成方形矩阵,具有与上述单矩阵 Cholesky 分解相同的约束条件.输出是与包含所有输入子矩阵 [..,:,:] 的 Cholesky 分解的输入相同形状的张量.
ARGS:
- input:一个张量.必须是以下类型之一:float64,float32.形状是 [..., M, M].
- name:操作的名称(可选).
返回:
返回一个张量,与 input 具有相同的类型.形状是 [..., M, M].
tf.cholesky_solve
cholesky_solve ( chol , rhs , name = None )
定义在:tensorflow/python/ops/linalg_ops.py.
参考指南:数学函数>矩阵数学函数
求解系统的线性方程 A X = RHS,给出 Cholesky 因式分解.
#解决10个独立的2x2线性系统: A = ... #shape 10x2x2 RHS = ... #shape 10x2x1 chol = tf .cholesky(A) #shape 10x2x2 X = tf .cholesky_solve ( CHOL , RHS ) #10形状×2×1个 #tf.matmul(A,X)〜RHS X[3,:,0] #解线性系统A [3,:,:1 = RHS [ 3,,,0] #解决长度为10批次的每个成员的五个线性系统(K = 5). A = ... #shape 10x2x2 RHS = ... #shape 10x2 x5 ... X[3 ,:,2 ] #解线性系统A [3,:,:1 = RHS [3,:1,2]
ARGS:
- chol:一个张量.类型必须是 float32 或 float64,形状是 [..., M, M].Cholesky 分解 A,例如 chol = tf.cholesky(A).因此,只有 chol 的最后两个维度的下三角形部分(包括对角线)被使用.严格上半部分被假定为零并且不被访问.
- rhs:一个张量,与 chol 有相同类型,形状是 [..., M, K].
- name:操作的名字.默认为 cholesky_solve.
返回:
返回解决方案 A x = rhs,形状是 [..., M, K].