使用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中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
Python中使用ElementTree解析XML示例
Jun 02 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
安装docker-compose的两种最简方法
Jul 30 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
使用python制作一个解压缩软件
Nov 13 Python
基于python3抓取pinpoint应用信息入库
Jan 08 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 Python
python 实现ping测试延迟的两种方法
Dec 10 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/06 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Python os模块常用方法和属性总结
2020/02/20 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
连卡佛中国官网:Lane Crawford中文站
2018/01/27 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
读群众路线心得体会
2014/03/07 职场文书
商业融资计划书
2014/04/29 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
实习生辞职信范文
2015/03/02 职场文书
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技