使用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基础教程之基本数据类型和变量声明介绍
Aug 29 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
python实现多线程抓取知乎用户
Dec 12 Python
Python中的defaultdict与__missing__()使用介绍
Feb 03 Python
python3解析库pyquery的深入讲解
Jun 26 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
python制作朋友圈九宫格图片
Nov 03 Python
使用python写一个自动浏览文章的脚本实例
Dec 05 Python
如何使用python写截屏小工具
Sep 29 Python
Ubuntu20下的Django安装的方法步骤
Jan 24 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 Python
python Polars库的使用简介
Apr 21 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和ACCESS写聊天室(五)
2006/10/09 PHP
php知道与问问的采集插件代码
2010/10/12 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
php正则提取html图片(img)src地址与任意属性的方法
2017/02/08 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python计算程序运行时间的方法
2014/12/13 Python
Python最长公共子串算法实例
2015/03/07 Python
简洁的十分钟Python入门教程
2015/04/03 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
详细介绍pandas的DataFrame的append方法使用
2019/07/31 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
Python批量启动多线程代码实例
2020/02/18 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
计算机系本科生求职信
2014/05/31 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
矛盾论读书笔记
2015/06/29 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android