使用TensorFlow实现简单线性回归模型


Posted in Python onJuly 19, 2019

本文使用TensorFlow实现最简单的线性回归模型,供大家参考,具体内容如下

线性拟合y=2.7x+0.6,代码如下:

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
 
n = 201 # x点数
X = np.linspace(-1, 1, n)[:,np.newaxis] # 等差数列构建X,[:,np.newaxis]这个是shape,这一行构建了一个n维列向量([1,n]的矩阵)
noise = np.random.normal(0, 0.5, X.shape) # 噪声值,与X同型
Y = X*2.7 + 0.6 + noise # Y
 
xs = tf.placeholder(tf.float32, [None, 1]) # 下面两行是占位符tf.placeholder(dtype, shape)
ys = tf.placeholder(tf.float32, [None, 1])
 
w = tf.Variable(1.1) # 这两行是weight变量,bias变量,括号中是初始值
b = tf.Variable(0.2)
 
ypredict = tf.add(w*xs,b) # 根据 w, b 产生的预测值
 
loss = tf.reduce_sum(tf.pow(ys-ypredict,2.0))/n # 损失函数,tf.reduce_sum()按某一维度元素求和,默认为按列
 
optimizer = tf.train.GradientDescentOptimizer(0.01).minimize(loss) # 梯度下降优化器,0.01学习率,最小化losss
 
init = tf.global_variables_initializer() # 初始化所有变量
 
with tf.Session() as sess: 
 sess.run(init) # 运行初始化 
 for i in range (1000): # 迭代1000次 
  sess.run(optimizer, feed_dict = {xs:X,ys:Y}) # 运行优化器,梯度下降用到loss,计算loss需要xs, ys所以后面需要feed_dict 
  if i%50==0: # 每隔50次迭代输出w,b,loss
     # 下面sess.run(w),sess.run(b)里面没有feed_dict是因为打印w,b不需要xs,ys,而打印loss需要 
     print ("w:",sess.run(w),"\t b:", sess.run(b), "\t loss:", sess.run(loss,feed_dict={xs:X,ys:Y})) 
  
 plt.plot(X,X*sess.run(w)+sess.run(b)) # 运行迭代之后绘制拟合曲线,这需要在sess里面运行是因为要用到w,b 
 plt.scatter(X,Y) # 绘制被拟合数据(散点) 
 plt.show() # 绘制图像

结果:

w: 1.1106868  b: 0.2086223 loss: 1.2682248
w: 1.5626049  b: 0.4772562 loss: 0.7024503
w: 1.8849733  b: 0.57508457 loss: 0.47280872
w: 2.1149294  b: 0.61071056 loss: 0.36368176
w: 2.278966  b: 0.6236845 loss: 0.30917725
w: 2.3959787  b: 0.6284093 loss: 0.2815788
w: 2.4794474  b: 0.6301298 loss: 0.26755357
w: 2.5389886  b: 0.63075644 loss: 0.26041925
w: 2.5814607  b: 0.6309848 loss: 0.2567894
w: 2.611758  b: 0.6310678 loss: 0.25494233
w: 2.6333694  b: 0.6310981 loss: 0.25400248
w: 2.6487865  b: 0.631109  loss: 0.2535242
w: 2.659784  b: 0.63111293 loss: 0.25328085
w: 2.6676288  b: 0.6311139 loss: 0.25315702
w: 2.6732242  b: 0.6311139 loss: 0.25309405
w: 2.6772156  b: 0.6311139 loss: 0.25306198
w: 2.6800632  b: 0.6311139 loss: 0.25304565
w: 2.6820953  b: 0.6311139 loss: 0.25303733
w: 2.6835444  b: 0.6311139 loss: 0.25303313
w: 2.684578  b: 0.6311139 loss: 0.25303096

使用TensorFlow实现简单线性回归模型

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python利用beautifulSoup实现爬虫
Sep 29 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
Python排序搜索基本算法之归并排序实例分析
Dec 08 Python
python在线编译器的简单原理及简单实现代码
Feb 02 Python
Django中间件实现拦截器的方法
Jun 01 Python
django中SMTP发送邮件配置详解
Jul 19 Python
详解python statistics模块及函数用法
Oct 27 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
Python如何实现后端自定义认证并实现多条件登陆
Jun 22 Python
在django中查询获取数据,get, filter,all(),values()操作
Aug 09 Python
Python基础详解之描述符
Apr 28 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 #Python
简单了解django缓存方式及配置
Jul 19 #Python
python实现最小二乘法线性拟合
Jul 19 #Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 #Python
python如何实现数据的线性拟合
Jul 19 #Python
django获取from表单multiple-select的value和id的方法
Jul 19 #Python
django 信号调度机制详解
Jul 19 #Python
You might like
PL-880隐藏功能
2021/03/01 无线电
php 正则匹配函数体
2009/08/25 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
PHP以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
php实现的通用图片处理类
2015/03/24 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
将string解析为json的几种方式小结
2010/11/11 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
js里取容器大小、定位、距离等属性搜集整理
2013/08/19 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
js使用心得分享
2015/01/13 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
html5 canvas fillRect坐标和大小的问题解决方法
2014/03/26 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
本科生职业生涯规划书范文
2014/01/21 职场文书
超市开店计划书
2014/09/15 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
优秀校长事迹材料
2014/12/24 职场文书
工作简报格式范文
2015/07/21 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书