斯坦福tensorflow教程-tensorflow 实现线性回归代码结果

代码

import os
os.environ['TF_CCP_MIN_LOG_LEVEL'] = '2'
import time

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

import utils

DATA_FILE = 'data/birth_life_2010.txt'

# 步骤 1:读取数据
data, n_samples = utils.read_birth_life_data(DATA_FILE)
# print(data, n_samples)

# 步骤 2:给X和Y创建占位符
X = tf.placeholder(tf.float32, name='X')
Y = tf.placeholder(tf.float32, name='Y')

# 步骤 3:创建weights 和 bias ,初始化为0
w = tf.get_variable('weights', initializer=tf.constant(0.0))
b = tf.get_variable('bias', initializer=tf.constant(0.0))

# 步骤 4:创建模型
Y_predicted = w * X + b

# 步骤 5:使用方差squared error 作为损失函数 loss function
# 也可以使用其他平均方差作为损失函数 或者 Huber loss
loss = tf.square(Y - Y_predicted, name='loss')
# loss = utils.huber_loss(Y, Y_predicted)

# 步骤 6:使用梯度下降算法最小化损失, 学习率为0.001
optimizer = tf.train.GradientDescentOptimizer(
    learning_rate=0.001).minimize(loss)

start = time.time()
writer = tf.summary.FileWriter('./graphs/linear_reg', tf.get_default_graph())
with tf.Session() as sess:
    # 初始化变量
    sess.run(tf.global_variables_initializer())

    # 训练模型 100 epochs
    for i in range(100):
        total_loss = 0
        for x, y in data:
            _, l = sess.run([optimizer, loss], feed_dict={X: x, Y: y})
            total_loss += l
        print('Epoch {0}:{1}'.format(i, total_loss / n_samples))

    # 关闭witer
    writer.close()

    # 步骤 9:输出 w 和 b
    w_out, b_out = sess.run([w, b])
print('Took :%f seconds' % (time.time() - start))

# 画图
plt.plot(data[:, 0], data[:, 1], 'bo', label='Real data')
plt.plot(data[:, 0], data[:, 0] * w_out + b_out, 'r', label='Predicted data')
plt.legend()
plt.show()

结果

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

图片数据集太少?Keras Image Data Augmentation 各参数详解

图像深度学习任务中,面对小数据集,我们往往需要利用Image Data Augmentation图像增广技术来扩充我们的数据集,而keras的内置ImageDa...

6294
来自专栏AI科技评论

开发 | 如何优雅地用TensorFlow预测时间序列:TFTS库详细教程

AI 科技评论按:本文作者何之源,原文载于知乎专栏AI Insight,AI 科技评论获其授权发布。 前言 如何用TensorFlow结合LSTM来做时间序列预...

3765
来自专栏人工智能头条

如何用TensorFlow预测时间序列:TFTS库详细教程

1773
来自专栏人工智能

使用Keras在训练深度学习模型时监控性能指标

Keras库提供了一套供深度学习模型训练时的用于监控和汇总的标准性能指标并且开放了接口给开发者使用。

1.7K10
来自专栏AI科技大本营的专栏

用AI给黑白照片上色,复现记忆中的旧时光

【导读】我们知道,深度学习几乎已经应用在每一个领域,但如果我们能够构建一个基于深度学习的模型,让它能够给老照片着色,重现我们童年的旧回忆,这该多么令人激动啊!那...

4453
来自专栏量子位

如何优雅地用TensorFlow预测时间序列:TFTS库详细教程

作者:何之源 转载自知乎专栏:AI Insight 量子位 已获授权编辑发布 这篇文章中,作者详细介绍了TensorFlow Time Series(TFTS)...

7286
来自专栏ascii0x03的安全笔记

利用Python sklearn的SVM对AT&T人脸数据进行人脸识别

要求:使用10-fold交叉验证方法实现SVM的对人脸库识别,列出不同核函数参数对识别结果的影响,要求画对比曲线。 使用Python完成,主要参考文献【4】...

5338
来自专栏技术翻译

回归问题的深层神经网络

众所周知,神经网络可用于解决分类问题,例如,它们被用于手写体数字分类,但问题是,如果我们将它们用于回归问题,它会有效果吗?

5892
来自专栏AI研习社

如何优雅地用 TensorFlow 预测时间序列:TFTS 库详细教程 | 雷锋网

如何用 TensorFlow 结合 LSTM 来做时间序列预测其实是一个很老的话题,然而却一直没有得到比较好的解决。如果在 Github 上搜索 “tensor...

3695
来自专栏Spark学习技巧

SparkMllib主题模型案例讲解

一 本文涉及到的算法 1, LDA主题模型 符号定义 文档集合D,m篇,topic集合T,k个主题 D中每个文档d看作一个单词序列< w1,w2,...,wn...

2585

扫码关注云+社区