线性回归算法能表示为矩阵计算,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. 图像的泊松(Poisson)编辑、泊松融合完全详解
  2. 在ubuntu上安装samba实现与windows的文件共享
  3. 从钱龙数据中读取股票权息信息导入到数据库
  4. Linux学习之路01
  5. django-解决-修改过的模型类不能被正常迁移的解决办法
  6. Python入门--以主程序的方式运行,if __name__==‘__main__‘
  7. 全网首发:安装Python(或其他软件)出现0x80072f7d错误的解决办法
  8. 思岚科技RPlidar A3激光雷达ROS源码详解
  9. antd表单按钮验证置灰
  10. selenium:表单frame切换和句柄窗口切换
  11. 海森堡与他的矩阵力学分享者
  12. 2019上半年软件设计师 下午真题-简答题及免费答案(一)
  13. 生成目录_将word转换成PDF
  14. 一个优秀的国产ITSM软件应该有哪些特性?
  15. 一文总结经典卷积神经网络CNN模型
  16. includes的使用
  17. SqlServer邮件
  18. 阿里云ONS消息队列入门指南
  19. 浅谈www.baidu.com和baidu.com
  20. WPS操作时会留下历史记录如何关闭历史功能保护个人隐私

热门文章

  1. 请认真使用没有后悔药的parted分区工具
  2. ZTree async中文乱码,ZTree reAsyncChildNodes中文乱码,zTree中文乱码
  3. 【转帖】MATLAB中用FDATool设计滤波器及使用
  4. Install/Remove of the Service Denied
  5. java一个进程可以村多少个线程_一台 Java 服务器可以跑多少个线程?
  6. java jeditorpane 自动换行_java – JTextPane JScrollPane自动换行?
  7. python logger.debug_python处理logger日志
  8. mybatis 多表插入_CRUD_Operator-Mybatis
  9. cuda10安装_Mmdetection的安装和使用
  10. Day003 20210208