使用tensorflow实现线性回归


Posted in Python onSeptember 08, 2018

本文实例为大家分享了tensorflow实现线性回归的具体代码,供大家参考,具体内容如下

一、随机生成1000个点,分布在y=0.1x+0.3直线周围,并画出来

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt

num_points = 1000
vectors_set = []
for i in range(num_points):
  x1 = np.random.normal(0.0,0.55)
  //设置一定范围的浮动
  y1 = x1*0.1+0.3+np.random.normal(0.0,0.03)
  vectors_set.append([x1,y1])

x_data = [v[0] for v in vectors_set]
y_data = [v[1] for v in vectors_set]

plt.scatter(x_data,y_data,c='r')
plt.show()

二、构造线性回归函数

#生成一维的w矩阵,取值为[-1,1]之间的随机数
w = tf.Variable(tf.random_uniform([1],-1.0,1.0),name='W')
#生成一维的b矩阵,初始值为0
b = tf.Variable(tf.zeros([1]),name='b')
y = w*x_data+b

#均方误差
loss = tf.reduce_mean(tf.square(y-y_data),name='loss')
#梯度下降
optimizer = tf.train.GradientDescentOptimizer(0.5)
#最小化loss
train = optimizer.minimize(loss,name='train')


sess=tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

#print("W",sess.run(w),"b=",sess.run(b),"loss=",sess.run(loss))
for step in range(20):
  sess.run(train)
  print("W=",sess.run(w),"b=",sess.run(b),"loss=",sess.run(loss))

//显示拟合后的直线
plt.scatter(x_data,y_data,c='r')
plt.plot(x_data,sess.run(w)*x_data+sess.run(b))
plt.show()

三、部分训练结果如下:

W= [ 0.10559751] b= [ 0.29925063] loss= 0.000887708
W= [ 0.10417549] b= [ 0.29926425] loss= 0.000884275
W= [ 0.10318361] b= [ 0.29927373] loss= 0.000882605
W= [ 0.10249177] b= [ 0.29928035] loss= 0.000881792
W= [ 0.10200921] b= [ 0.29928496] loss= 0.000881397
W= [ 0.10167261] b= [ 0.29928818] loss= 0.000881205
W= [ 0.10143784] b= [ 0.29929042] loss= 0.000881111
W= [ 0.10127408] b= [ 0.29929197] loss= 0.000881066

拟合后的直线如图所示:

使用tensorflow实现线性回归

结论:最终w趋近于0.1,b趋近于0.3,满足提前设定的数据分布

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python IDLE入门简介
Dec 08 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
Python封装原理与实现方法详解
Aug 28 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
python通过http下载文件的方法详解
Jul 26 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
Python定义一个函数的方法
Jun 15 Python
pandas之分组groupby()的使用整理与总结
Jun 18 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 Python
python实现控制台输出颜色
Mar 02 Python
Python  unittest单元测试框架的使用
Sep 08 #Python
tensorflow实现逻辑回归模型
Sep 08 #Python
Django实现表单验证
Sep 08 #Python
python实现排序算法解析
Sep 08 #Python
TensorFlow实现Logistic回归
Sep 07 #Python
tensorflow实现简单逻辑回归
Sep 07 #Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 #Python
You might like
php下目前为目最全的CURL中文说明
2010/08/01 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
php生成图片缩略图的方法
2015/04/07 PHP
php判断对象是派生自哪个类的方法
2015/06/20 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
python2.7删除文件夹和删除文件代码实例
2013/12/18 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
详解用TensorFlow实现逻辑回归算法
2018/05/02 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
django有哪些好处和优点
2020/09/01 Python
java关于string最常出现的面试题整理
2021/01/18 Python
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
标准化管理实施方案
2014/02/25 职场文书
小学语文业务学习材料
2014/06/02 职场文书
物业接待员岗位职责
2015/04/15 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android