线性回归算法能表示为矩阵计算,Ax=b。这里要解决的是用矩阵x来求解系数。

1.导入必要的编程库,初始化计算图,并生成数据。

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> import tensorflow as tf

>>> sess=tf.Session()

>>> x_vals=np.linspace(0,10,100)

>>> y_vals=x_vals+np.random.normal(0,1,100)

2.创建后续求逆方法所需的矩阵。创建A矩阵,其为矩阵x_vals_column和ones_column的合并。然后以矩阵y_vals创建b矩阵。

>>> 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))

3.将A和b矩阵转换成张量

>>> A_tensor=tf.constant(A)

>>> b_tensor=tf.constant(b)

4.使用tf.matrix_inverse()方法求逆

>>> tA_A=tf.matmul(tf.transpose(A_tensor),A_tensor)
>>> tA_A_inv=tf.matrix_inverse(tA_A)
>>> product=tf.matmul(tA_A_inv,tf.transpose(A_tensor))
>>> solution=tf.matmul(product,b_tensor)

>>> solution_eval=sess.run(solution)

5.从解中抽取系数、斜率和y截距

>>> slope=solution_eval[0][0]
>>> y_intercept=solution_eval[1][0]
>>> print('slope:'+str(slope))
slope:0.9469285572619588
>>> print('y_intercept:'+str(y_intercept))
y_intercept:0.2053153160416511
>>> 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 0x000001ED8EA34390>]
>>> plt.plot(x_vals,best_fit,'r-',label='Best fit line',linewidth=3)
[<matplotlib.lines.Line2D object at 0x000001ED8BF32FD0>]
>>> plt.legend(loc='upper left')
<matplotlib.legend.Legend object at 0x000001ED8EA34D68>

>>> plt.show()

用Tensorflow求逆矩阵相关推荐

  1. python C++ 求逆矩阵库

    python求逆矩阵库 https://numpy.org/ C++求逆矩阵库 http://eigen.tuxfamily.org/index.php?title=Main_Page

  2. 变换例题_用初等变换求逆矩阵的小小解释

    在我们学习逆矩阵的过程中,肯定会遇到这样一种求逆矩阵的方法: 若A是一个n阶可逆矩阵, (虚竖线打不出,凑合着看吧!)这一过程中经历了一系列初等行变换,并且我们下结论说: 中的 就是A的逆矩阵! 按逻 ...

  3. 求逆矩阵计算器_991CN的矩阵运算

    昨天的推文中说了一道二端口的题目,虚线中的大二端口由两个小二端口级联而成,在计算过程中,我们需要使用到矩阵的运算,昨天讲题的时候说会说一下用计算器进行矩阵运算,今天我们就来说一下. 其实在算电路的时候 ...

  4. numpy求逆矩阵_线性代数精华2——逆矩阵的推导过程

    点击上方蓝字,和我一起学技术. 上一讲当中我们复习了行列式的内容,行列式只是开胃小菜,线性代数的大头还是矩阵. 矩阵的定义很简单,就是若干个数按照顺序排列在一起的数表.比如m * n个数,排成一个m ...

  5. 选主元的高斯-约旦(Gauss-Jordan)消元法解线性方程组/求逆矩阵

    选主元的高斯-约当(Gauss-Jordan)消元法在很多地方都会用到,例如求一个矩阵的逆矩阵.解线性方程组(插一句:LM算法求解的一个步骤),等等.它的速度不是最快的,但是它非常稳定(来自网上的定义 ...

  6. matlab求逆矩阵_MPU6050姿态解算2-欧拉角amp;旋转矩阵

    1 IMU姿态解算 IMU,即惯性测量单元,一般包含三轴陀螺仪与三轴加速度计.之前的文章 码农爱学习:MPU6050姿态解算方式1-DMP​zhuanlan.zhihu.com 已将对MPU6050这 ...

  7. C语言 n*n矩阵求值及求逆矩阵

    求出矩阵的值以及输出逆矩阵,英语不好,略拗口. 上代码: #include<stdio.h> #include<string.h> #include<math.h> ...

  8. 3.3 伴随矩阵法求逆矩阵

    文章目录 逆矩阵定义 伴随矩阵 python实现 逆矩阵定义   逆矩阵指的是另一个矩阵和自己相乘会变成单位矩阵,符号是右上角一个 − 1 -1 −1,就是: A A − 1 = A − 1 A = ...

  9. 选主元的高斯-约当(Gauss-Jordan)消元法解线性方程组和求逆矩阵

    选主元的高斯-约当(Gauss-Jordan)消元法在很多地方都会用到,例如求一个矩阵的逆矩阵.解线性方程组(插一句:LM算法求解的一个步骤),等等.它的速度不是最快的,但是它非常稳定(来自网上的定义 ...

  10. 用高斯约当法求逆矩阵​​​​​​​​​​​​​​​​​​​​​A-1

    原矩阵:                   求. 用高斯约当法求逆矩阵. #include<iostream> #include<cstdio> #include<cs ...

最新文章

  1. 如何定制一款12306抢票浏览器——用户界面
  2. 创业,你准备好了吗?
  3. 这是我看过最全的工业机器人知识介绍 !
  4. [20180818]校内模拟赛
  5. [C++]const 总结
  6. Python map, reduce, filter和sorted
  7. C++希尔密码Hill Cipher算法(附完整源码)
  8. oracle 约束 Oracle 10g学习系列(5)
  9. Spring Data JPA 从入门到精通~思维导图
  10. Java反射基础(二)--Fileds对象的使用
  11. linux touch 源码,一天一个shell命令 linux文本操作系列-touch命令用法
  12. java版本不兼容_java 中jdk版本不兼容的问题小记
  13. 快速搭建本地服务器 php,本地PHP服务器环境快速搭建
  14. Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
  15. 小孟5w接了个盲盒小程序,三周开发完毕
  16. 笔记本合上盖子就断网怎么办?
  17. ios不能保存png_管理各种iOS设备文件的管理软件
  18. 电脑计算机打不开显示远程过程,Win10打不开图片提示“远程过程调用失败”的解决方案...
  19. Saas.为什么要搞Saas,会遇到哪些问题,看看5年Saas开发踩过的坑
  20. Unity自定义快捷键功能,支持动态改键(附工程文件)

热门文章

  1. 如何在IE浏览器中引入本地字体文件
  2. 调用Thread类的方法:public final String getName() 为什么得到的线程对象的名称默认是:Thread-0、Thread-1、Thread-2、...呢?...
  3. Exadata:Smart Scan(二) FAST FULL SCAN
  4. 病毒周报(100201至100207)
  5. 091030 T 焦点在外,框架API设计
  6. 2009年11月14日上海讲座-Linux触摸屏驱动PPT
  7. Ubuntu Linux系统备份与还原命令技巧
  8. qi接收启动协议_无线充电Qi通信协议分析
  9. 数据库习题(填空题五)
  10. html文本框自动填充,html利用文本框input自动填写当前日期