【问题标题】:Possible tensorflow cholesky_solve inconsistency?可能的张量流cholesky_solve不一致?
【发布时间】:2017-05-28 19:13:14
【问题描述】:

我正在尝试使用 tensorflow.cholesky_solve 求解线性方程组,但得到了一些意想不到的结果。

我编写了一个脚本来比较一个非常简单的线性系统的输出与简单的矩阵求逆,例如 tensorflow.matrix_inverse、基于非 Cholesky 的矩阵方程求解器 tensorflow.matrix_solvetensorflow.cholesky_solve

根据我对链接的文档的理解,这三种情况都应该产生单位矩阵除以 2 的解,但tensorflow.cholesky_solve 的情况并非如此。也许我误解了文档?

import tensorflow as tf

I = tf.eye(2, dtype=tf.float32)
X = 2 * tf.eye(2, dtype=tf.float32)
X_inv = tf.matrix_inverse(X)
X_solve = tf.matrix_solve(X, I)
X_chol_solve = tf.cholesky_solve(tf.cholesky(X), I)

with tf.Session() as sess:
    for x in [X_inv, X_solve, X_chol_solve]:
        print('{}:\n{}'.format(x.name, sess.run(x)))
        print

产出输出:

MatrixInverse:0:
[[ 0.5  0. ]
 [ 0.   0.5]]

MatrixSolve:0:
[[ 0.5  0. ]
 [ 0.   0.5]]

cholesky_solve/MatrixTriangularSolve_1:0:
[[ 1.  0.]
 [ 0.  1.]]


Process finished with exit code 0

【问题讨论】:

  • 我回答你的问题了吗?

标签: tensorflow linear-algebra matrix-inverse


【解决方案1】:

我认为这是一个错误。注意结果如何甚至不依赖于RHS,除非RHS = 0,在这种情况下你得到nan 而不是0。请在 GitHub 上报告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2017-08-03
    • 2018-05-10
    • 1970-01-01
    相关资源
    最近更新 更多