使用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 私有函数的实例详解
Sep 11 Python
django文档学习之applications使用详解
Jan 29 Python
python组合无重复三位数的实例
Nov 13 Python
django基础学习之send_mail功能
Aug 07 Python
django echarts饼图数据动态加载的实例
Aug 12 Python
python getpass实现密文实例详解
Sep 24 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
Python json转字典字符方法实例解析
Apr 13 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
Python爬取网页信息的示例
Sep 24 Python
python import 上级目录的导入
Nov 03 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 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
如何在PHP中使用Oracle数据库(3)
2006/10/09 PHP
PHP个人网站架设连环讲(三)
2006/10/09 PHP
PHP使用数组实现队列
2012/02/05 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
JavaScript基本对象
2007/01/11 Javascript
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python实现数独游戏 java简单实现数独游戏
2018/03/30 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
Python GUI编程完整示例
2019/04/04 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
详解python itertools功能
2020/02/07 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
小学教师管理制度
2014/01/18 职场文书
红与黑读书笔记
2015/06/29 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
php解析非标准json、非规范json的方式实例
2022/05/10 PHP