使用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 相关文章推荐
pycharm 使用心得(七)一些实用功能介绍
Jun 06 Python
python3抓取中文网页的方法
Jul 28 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
python 生成图形验证码的方法示例
Nov 11 Python
Django2.1.3 中间件使用详解
Nov 26 Python
Python查找最长不包含重复字符的子字符串算法示例
Feb 13 Python
python使用PyQt5的简单方法
Feb 27 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
python如何通过twisted搭建socket服务
Feb 03 Python
Python 字符串池化的前提
Jul 03 Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 Python
python解决OpenCV在读取显示图片的时候闪退的问题
Feb 23 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
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
php调用Google translate_tts api实现代码
2013/08/07 PHP
SyntaxHighlighter代码加色使用方法
2008/09/07 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
python通过smpt发送邮件的方法
2015/04/30 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
Python实现选择排序
2017/06/04 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
django celery redis使用具体实践
2019/04/08 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python自动点赞功能的实现思路
2020/02/26 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
降低python版本的操作方法
2020/09/11 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
生物制药专业求职信
2014/03/11 职场文书
中介业务员岗位职责
2014/04/09 职场文书
实习生评语
2014/04/26 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
公司表扬信格式
2015/05/04 职场文书
值班管理制度范本
2015/08/06 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书