斯坦福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 条评论
登录 后参与评论

相关文章

来自专栏Petrichor的专栏

tensorflow: 损失函数(Losses Functions) 探究

易得 l2_loss( t, name=None ) 等同于 output = sum(t ** 2) / 2

801
来自专栏目标检测和深度学习

从零开始PyTorch项目:YOLO v3目标检测实现

在过去几个月中,我一直在实验室中研究提升目标检测的方法。在这之中我获得的最大启发就是意识到:学习目标检测的最佳方法就是自己动手实现这些算法,而这正是本教程引导你...

21611
来自专栏深度学习之tensorflow实战篇

Python多元线性回归-sklearn.linear_model,并对其预测结果评估

在前面的博客已经介绍过多元回归模型,现在这里粗略介绍如下 ? python 实现案例 1、选取数据 #!usr/bin/env python #_*_ c...

4875
来自专栏Spark学习技巧

SparkMllib主题模型案例讲解

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

2355
来自专栏深度学习之tensorflow实战篇

python SVM 案例,sklearn.svm.SVC 参数说明

sklearn.svm.SVC 参数说明 经常用到sklearn中的SVC函数,这里把文档中的参数翻译了一些,以备不时之需。 本身这个函数也是基于libsvm实...

5366
来自专栏Bingo的深度学习杂货店

使用Keras实现生成式对抗网络GAN

生成式对抗网络(GAN)自2014年提出以来已经成为最受欢迎的生成模型。本文借鉴机器之心对 2014 GAN 论文的解读,在本机运行该Keras项目。 传送门:...

4754
来自专栏PaddlePaddle

【文本分类】基于双层序列的文本分类模型

导语 PaddlePaddle提供了丰富的运算单元,帮助大家以模块化的方式构建起千变万化的深度学习模型来解决不同的应用问题。这里,我们针对常见的机器学习任务,提...

2613
来自专栏深度学习思考者

一文解决OpenCV训练分类器制作xml文档的所有问题

一 前言 关于训练分类器制作XML文档时需要的两个exe应用程序的解释。   opencv_createsamples :用来准备训练用的正样本数据和测试数据...

4196
来自专栏机器之心

专栏 | 在PaddlePaddle上实现MNIST手写体数字识别

机器之心专栏 来源:百度PaddlePaddle 不久之前,机器之心联合百度推出 PaddlePaddle 专栏,为想要学习这一平台的技术人员推荐相关教程与资源...

2585
来自专栏AIUAI

Caffe2 - (二十七) Detectron 之 modeling - detector

4638

扫码关注云+社区