使用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实现面向对像的ASP程序实例
Nov 10 Python
sublime text 3配置使用python操作方法
Jun 11 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
学习和使用python的13个理由
Jul 30 Python
python实现抠图给证件照换背景源码
Aug 20 Python
python实现人脸签到系统
Apr 13 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
Nov 24 Python
python中doctest库实例用法
Dec 31 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 Python
Python实现拼音转换
Jun 07 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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
PHP闭包函数详解
2016/02/13 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
python实现两个文件夹的同步
2019/08/29 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
深圳-东方伟业笔试部分
2015/02/11 面试题
乌鸦喝水教学反思
2014/02/07 职场文书
ktv筹备计划书
2014/05/03 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
法定授权委托证明书
2014/09/27 职场文书
工程款申请报告
2015/05/15 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android
详解nginx进程锁的实现
2021/06/14 Servers
Win10本地连接不见了怎么恢复? win10系统电脑本地连接不见了解决方法
2023/01/09 数码科技