使用tensorflow实现矩阵分解方式

  

采用最小二乘的求逆方法在大部分情况下是低效率的。特别地,当局镇非常大时效率更低。另外一种实现方法是矩阵分解,此方法使用tensorflow内建的柯列斯基矩阵分解法.Cholesky矩阵分解法把一个矩阵分解为上三角矩阵和下三角矩阵,L和L’。求解Ax=b,改写成LL '=b。首先求解=b,然后求解L 'x=y得到系数矩阵。

  

<强> 1。导入编程库,初始化计算图,生成数据集。接着获取矩阵A和b。

        在在在进口matplotlib。pyplot作为plt   在在在进口numpy np      在在在进口tensorflow特遣部队      在在在从tensorflow.python.framework进口操作   在在在ops.reset_default_graph ()      在在在税=tf.Session ()      在在在x_vals=np.linspace (0, 10100)      在在在y_vals=x_vals + np.random.normal (0, 1100)      在在在x_vals_column=np.transpose (np.matrix (x_vals))   在祝辞祝辞>   在在在tA_A=tf.matmul (tf.transpose (A_tensor) A_tensor)   在在在L=tf.cholesky (tA_A)   在在在tA_b=tf.matmul (tf.transpose (A_tensor), b)   在在在tA_b sol1=tf.matrix_solve(左)      在在在sol2=tf.matrix_solve (tf.transpose (L), sol1)   之前      

<强> 3。抽取系数

        在在在solution_eval=sess.run (sol2)   在在在solution_eval   阵列([[1.01379067],   [0.02290901]])   在在在斜率=solution_eval [0] [0]   在在在y_intercept=solution_eval [1] [0]   在在在print(斜率:' + str(斜率))   坡:1.0137906744047482   在在在打印(' y_intercept: ' + str (y_intercept))   y_intercept: 0.022909011828880693   在在在best_fit=[]   在在在因为我在x_vals:   …我+ y_intercept best_fit.append斜率(*)   …   在在在plt.plot (x_vals y_vals、“o”标签=笆荨?   [& lt; matplotlib.lines。在0 x000001e0a58dd9b0> Line2D对象;】   在在在plt。情节(x_vals best_fit, r -,标签=最适合线,线宽=3)   [& lt; matplotlib.lines。在0 x000001e0a2dfaf98> Line2D对象;】   在在在plt。传奇(loc=白笊稀?   & lt; matplotlib.legend。传说在0 x000001e0a58f03c8>对象;      在在在plt.show ()   之前      

使用tensorflow实现矩阵分解方式

  

以上这篇使用tensorflow实现矩阵分解方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

使用tensorflow实现矩阵分解方式