使用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 相关文章推荐
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
Jan 23 Python
Python 爬虫学习笔记之正则表达式
Sep 21 Python
浅析使用Python操作文件
Jul 31 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
python实现根据文件关键字进行切分为多个文件的示例
Dec 10 Python
浅谈Python批处理文件夹中的txt文件
Mar 11 Python
django使用admin站点上传图片的实例
Jul 28 Python
Python程序暂停的正常处理方法
Nov 07 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
Python配置pip国内镜像源的实现
Aug 20 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
php共享内存段示例分享
2014/01/20 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP微信开发之微信录音临时转永久存储
2018/01/26 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
Egret引擎开发指南之视觉编程
2014/09/03 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
js实现百度登录框鼠标拖拽效果
2017/03/07 Javascript
AngularJS service之select下拉菜单效果
2017/07/28 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
python3 与python2 异常处理的区别与联系
2016/06/19 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
怎么快速自学python
2020/06/22 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
Django权限控制的使用
2021/01/07 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
阿迪达斯荷兰官方网站:adidas荷兰
2018/03/16 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
党课学习思想汇报
2014/01/02 职场文书
求职信需要的五点内容
2014/02/01 职场文书
大型演出策划方案
2014/05/28 职场文书