使用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中Random和Math模块学习笔记
May 18 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
python3+PyQt5实现拖放功能
Apr 24 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 Python
PyQt5 在label显示的图片中绘制矩形的方法
Jun 17 Python
Django文件存储 默认存储系统解析
Aug 02 Python
解决pandas展示数据输出时列名不能对齐的问题
Nov 18 Python
keras获得某一层或者某层权重的输出实例
Jan 24 Python
python批量修改xml属性的实现方式
Mar 05 Python
pytorch 使用半精度模型部署的操作
May 24 Python
Python实现的扫码工具居然这么好用!
Jun 07 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 缓存实现代码及详细注释
2010/05/16 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
javascript执行环境及作用域详解
2016/05/05 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
微信小程序实现图片压缩功能
2018/01/26 Javascript
JavaScript惰性求值的一种实现方法示例
2019/01/11 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
平面设计的岗位职责
2013/11/08 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
公司办公室岗位职责
2014/03/19 职场文书
继承权公证书
2014/04/09 职场文书
2014年招商工作总结
2014/11/22 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
消防安全主题班会
2015/08/12 职场文书
《鲁班学艺》读后感3篇
2019/11/27 职场文书
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers