使用tensorflow实现矩阵分解方式


Posted in Python onFebruary 07, 2020

采用最小二乘的求逆方法在大部分情况下是低效率的。特别地,当局镇非常大时效率更低。另外一种实现方法是矩阵分解,此方法使用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))
>>> A_tensor=tf.constant(A)

>>> b_tensor=tf.constant(b)

2. 找到方阵的Cholesky矩阵分解。

注意:tensorflow的cholesky()函数仅仅返回矩阵分解的下三角矩阵,因为上三角矩阵是下三角矩阵的转置矩阵。

>>> tA_A=tf.matmul(tf.transpose(A_tensor),A_tensor)
>>> L=tf.cholesky(tA_A)
>>> tA_b=tf.matmul(tf.transpose(A_tensor),b)
>>> sol1=tf.matrix_solve(L,tA_b)

>>> sol2=tf.matrix_solve(tf.transpose(L),sol1)

3. 抽取系数

>>> solution_eval=sess.run(sol2)
>>> solution_eval
array([[1.01379067],
    [0.02290901]])
>>> slope=solution_eval[0][0]
>>> y_intercept=solution_eval[1][0]
>>> print('slope:'+str(slope))
slope:1.0137906744047482
>>> print('y_intercept:'+str(y_intercept))
y_intercept:0.022909011828880693
>>> best_fit=[]
>>> for i in x_vals:
...  best_fit.append(slope*i+y_intercept)
...
>>> plt.plot(x_vals,y_vals,'o',label='Data')
[<matplotlib.lines.Line2D object at 0x000001E0A58DD9B0>]
>>> plt.plot(x_vals,best_fit,'r-',label='Best fit line',linewidth=3)
[<matplotlib.lines.Line2D object at 0x000001E0A2DFAF98>]
>>> plt.legend(loc='upper left')
<matplotlib.legend.Legend object at 0x000001E0A58F03C8>

>>> plt.show()

使用tensorflow实现矩阵分解方式

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

Python 相关文章推荐
实例讲解Python的函数闭包使用中应注意的问题
Jun 20 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
python 常见字符串与函数的用法详解
Nov 23 Python
python搜索包的路径的实现方法
Jul 19 Python
使用APScheduler3.0.1 实现定时任务的方法
Jul 22 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
python3的pip路径在哪
Jun 23 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 Python
如何在Python中妥善使用进度条详解
Apr 05 Python
Python中tqdm的使用和例子
Sep 23 Python
python匿名函数lambda原理及实例解析
Feb 07 #Python
Python用input输入列表的实例代码
Feb 07 #Python
详解Python 重学requests发起请求的基本方式
Feb 07 #Python
对tensorflow 中tile函数的使用详解
Feb 07 #Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 #Python
Tensorflow分批量读取数据教程
Feb 07 #Python
python统计字符的个数代码实例
Feb 07 #Python
You might like
写一个用户在线显示的程序
2006/10/09 PHP
ADODB类使用
2006/11/25 PHP
PHP 批量删除 sql语句
2009/06/05 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP查询分页的实现代码
2017/06/09 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
详解微信小程序之提高应用速度小技巧
2020/01/07 Javascript
React+EggJs实现断点续传的示例代码
2020/07/07 Javascript
Python3读取zip文件信息的方法
2015/05/22 Python
Python易忽视知识点小结
2015/05/25 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
Python语言的面相对象编程方式初步学习
2016/03/12 Python
python简单实例训练(21~30)
2017/11/15 Python
python语言中with as的用法使用详解
2018/02/23 Python
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
技校教师求职简历的自我评价
2013/10/20 职场文书
生产实习心得体会范文
2016/01/22 职场文书
深入理解margin塌陷和margin合并的解决方案
2021/06/26 HTML / CSS
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
Python如何加载模型并查看网络
2022/07/15 Python