前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tensorflow笔记|tensorflow做线性回归

Tensorflow笔记|tensorflow做线性回归

作者头像
double
发布2018-04-02 16:39:20
9370
发布2018-04-02 16:39:20
举报
文章被收录于专栏:算法channel

本系列推送主要参考: Stanford University CS20SI: Tensorflow for Deep Learning Research.

01

Tensorflow做线性回归

前面实现过最小二乘法的线性回归算法,梯度下降求解过程,详见文章:

机器学习之线性回归:算法兑现为python代码

那么,借助tensorflow如何实现最小二乘法的线性回归呢?基本的思路,首先生成拟合的数据集,然后构建线性回归的Graph,最后在Session中迭代train器,得到拟合的参数w和b,画出拟合曲线。

1.1 生成拟合的数据集,数据集只含有一个特征,注意误差项需要满足高斯分布,其分布的代码如下,首先导入3个库,

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

#数据点100个 num_points = 100 vectors_set = [] for i in range(num_points): x1 = np.random.normal(0.,0.55) y1 = x1 * 0.1 + 0.3 + np.random.normal(0.0,0.03) vectors_set.append([x1,y1]) #特征x x_data = [v[0] for v in vectors_set] #标签值y y_data = [v[1] for v in vectors_set] plt.scatter(x_data,y_data,c='b') plt.show()

产生的数据分布如下所示:

1.2 构建线性回归的Graph

w = tf.Variable(tf.random_uniform([1],-1.,1.),name='myw') b = tf.Variable(tf.zeros([1]),name='myb') #经过计算得出预估值 y = w * x_data + b #以预估值y和实际值y_data之间的均方差作为损失 loss = tf.reduce_mean(tf.square(y-y_data,name='mysquare'), name='myloss') #采用梯度下降法来优化参数 optimizer = tf.train.GradientDescentOptimizer(0.5) train = optimizer.minimize(loss,name='mytrain')

1.3 在Session中运行构建好的Graph

#global_variables_initializer初始化Variable等变量 sess = tf.Session() init = tf.global_variables_initializer() sess.run(init) print("w=", sess.run(w),"b=",sess.run(b),sess.run(loss)) #迭代20次train for step in range(20): sess.run(train) print("w=", sess.run(w),"b=",sess.run(b),sess.run(loss)) #写入磁盘,提供tensorboard在浏览器中展示用 writer = tf.summary.FileWriter("./mytmp",sess.graph)

打印下w和b,损失值的变化情况,可以看到损失值从0.24降到0.0008.

1.4绘制拟合曲线

plt.scatter(x_data,y_data,c='b') plt.plot(x_data,sess.run(w)*x_data+sess.run(b)) plt.show()

02

Tensorboard展示Graph

关于如何在tensorboard中展示构建好的Graph,请参考文章,不再赘述,直接分析tensorflow绘制的graph.

TensorFlow笔记|Get Started

得到的Graph界面如下所示:

Main Graph视图放大版,数据从底部是如何经过Operators,流动到顶部的,大家可以顺一下。

以上就是在tensorflow中做基本的线性回归的基本步骤,利用这个最基本的任务,先体会下tensorflow做回归的过程。

以上完整源码,请点击下方“阅读原文”按钮。


TensorFlow的参考书:

  1. TensorFlow for Machine Intelligence (TFFMI)
  2. Hands-On Machine Learning with Scikit-Learn and TensorFlow. Chapter 9: Up and running with TensorFlow
  3. Fundamentals of Deep Learning. Chapter 3: Implementing Neural Networks in TensorFlow (FODL)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档