采用最小二乘的求逆方法在大部分情况下是低效率的。特别地,当局镇非常大时效率更低。另外一种实现方法是矩阵分解,此方法使用tensorflow内建的Cholesky矩阵分解法。Cholesky矩阵分解法把一个矩阵分解为上三角矩阵和下三角矩阵,L和L'。求解Ax=b,改写成LL'=b。首先求解Ly=b,然后求解L'x=y得到系数矩阵。
1.导入编程库,初始化计算图,生成数据集。接着获取矩阵A和b。
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> import tensorflow as tf
>>> from tensorflow.python.framework import ops
>>> ops.reset_default_graph()
>>> sess=tf.Session()
>>> x_vals=np.linspace(0,10,100)
>>> y_vals=x_vals+np.random.normal(0,1,100)
>>> x_vals_column=np.transpose(np.matrix(x_vals))
>>> ones_column=np.transpose(np.matrix(np.repeat(1,100)))
>>> A=np.column_stack((x_vals_column,ones_column))
>>> b=np.transpose(np.matrix(y_vals))
>>&