使用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中的内置函数getattr()介绍及示例
Jul 20 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
解决python读取几千万行的大表内存问题
Jun 26 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
python如何保存文本文件
Jun 07 Python
Python 3.10 的首个 PEP 诞生,内置类型 zip() 迎来新特性(推荐)
Jul 03 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 Python
Python time库的时间时钟处理
May 02 Python
python 实现体质指数BMI计算
May 26 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之第八天
2006/10/09 PHP
php获取用户IPv4或IPv6地址的代码
2012/11/15 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
js密码强度校验
2015/11/10 Javascript
基于jQuery实现点击最后一行实现行自增效果的表格
2016/01/12 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
Python查找相似单词的方法
2015/03/05 Python
python遍历数组的方法小结
2015/04/30 Python
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python中return语句用法实例分析
2015/08/04 Python
Ruby元编程基础学习笔记整理
2016/07/02 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
python和go语言的区别是什么
2020/07/20 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
中东地区为妈妈们提供一切的头号购物目的地:Sprii
2018/05/06 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
2016读书月活动心得体会
2016/01/14 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python