使用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 相关文章推荐
Eclipse + Python 的安装与配置流程
Mar 05 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
Python 在字符串中加入变量的实例讲解
May 02 Python
详解python列表生成式和列表生成式器区别
Mar 27 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
python爬取本站电子书信息并入库的实现代码
Jan 20 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
python requests.get带header
May 05 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
如何卸载python插件
Jul 08 Python
Python如何对齐字符串
Jul 30 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开发中的中文编码问题
2013/08/08 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
php利用array_search与array_column实现二维数组查找
2019/07/08 PHP
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
angularJS 入门基础
2015/02/09 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
Angular 应用技巧总结
2016/09/14 Javascript
vue使用watch 观察路由变化,重新获取内容
2017/03/08 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
详解Python字符串对象的实现
2015/12/24 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
详解django中使用定时任务的方法
2018/09/27 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
python爬虫可以爬什么
2020/06/16 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
extern是什么意思
2016/03/10 面试题
入党申请人的自我鉴定
2013/12/01 职场文书
自动化职业生涯规划书范文
2014/01/03 职场文书
高中军训感言500字
2014/02/24 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
入党个人总结范文
2015/03/02 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL