导入依赖包

import tensorflow as tf
import numpy as np
import matplotlib.pylab as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']

生成直线数据并加入噪音画图显示

train_x = np.linspace(-1, 1, 100)  # 生成 -1 到 1之间 分成100份
# print(train_x)
noise = np.random.randn(*train_x.shape) * 0.3
train_y = 2 * train_x + noise # 给每一个点加上噪音
# print(noise)
plt.plot(train_x, train_y, "go", label="我的初始数据")
plt.legend()
plt.show()

定义模型的输入和输出

x = tf.placeholder("float")
y = tf.placeholder("float")
# 定义并初始化模型的权重偏置
w = tf.Variable(tf.random_normal([1]), name="weight")
b = tf.Variable(tf.zeros([1]), name="bias")
# 定义模型的前向传播过程
y_predict = tf.multiply(w, x) + b

定义模型的损失函数,反向传播

cost = tf.reduce_mean(tf.square(y - y_predict))
learning_rate = 0.01 # 定义学习率
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) # 定义优化器
init = tf.global_variables_initializer()

定义超参数

train_epochs = 100
display_epoch = 2

训练模型

with tf.Session() as sess:
sess.run(init)
plotdata = {"epochs": [], "cost": []} # 保存训练得到的参数
for epoch in range(train_epochs):
for X, Y in zip(train_x, train_y):
sess.run(optimizer, feed_dict={x: X, y: Y}) if epoch % display_epoch == 0:
print("训练的epoch为:%d cost为:%f %f" % (epoch+1, sess.run(cost, feed_dict={x: train_x, y: train_y}), sess.run(b)))
plotdata["epochs"].append(epoch+1)
plotdata["cost"].append(sess.run(cost, feed_dict={x: train_x, y: train_y})) print("训练完成")
print("模型训练的结果为: ", "w", sess.run(w), "b:", sess.run(b), "cost:",
sess.run(cost, feed_dict={x: train_x, y: train_y}))

画图显示

    plt.plot(train_x, train_y, "go", label="我的初始数据")
plt.plot(train_x, sess.run(w) * train_x + sess.run(b), label='Fitted line')
plt.legend()
plt.show()

机器学习之线性回归使用Python和tensorflow实现的更多相关文章

  1. 机器学习之线性回归(纯python实现)][转]

    本文转载自:https://juejin.im/post/5a924df16fb9a0634514d6e1 机器学习之线性回归(纯python实现) 线性回归是机器学习中最基本的一个算法,大部分算法都 ...

  2. 《转载》python/人工智能/Tensorflow/自然语言处理/计算机视觉/机器学习学习资源分享

    本次分享一部分python/人工智能/Tensorflow/自然语言处理/计算机视觉/机器学习的学习资源,也是一些比较基础的,如果大家有看过网易云课堂的吴恩达的入门课程,在看这些视频还是一个很不错的提 ...

  3. 机器学习3- 一元线性回归+Python实现

    目录 1. 线性模型 2. 线性回归 2.1 一元线性回归 3. 一元线性回归的Python实现 3.1 使用 stikit-learn 3.1.1 导入必要模块 3.1.2 使用 Pandas 加载 ...

  4. 机器学习4- 多元线性回归+Python实现

    目录 1 多元线性回归 2 多元线性回归的Python实现 2.1 手动实现 2.1.1 导入必要模块 2.1.2 加载数据 2.1.3 计算系数 2.1.4 预测 2.2 使用 sklearn 1 ...

  5. 干货 | 请收下这份2018学习清单:150个最好的机器学习,NLP和Python教程

    机器学习的发展可以追溯到1959年,有着丰富的历史.这个领域也正在以前所未有的速度进化.在之前的一篇文章中,我们讨论过为什么通用人工智能领域即将要爆发.有兴趣入坑ML的小伙伴不要拖延了,时不我待! 在 ...

  6. TensorFlow 学习笔记(1)----线性回归(linear regression)的TensorFlow实现

    此系列将会每日持续更新,欢迎关注 线性回归(linear regression)的TensorFlow实现 #这里是基于python 3.7版本的TensorFlow TensorFlow是一个机器学 ...

  7. JavaScript机器学习之线性回归

    译者按: AI时代,不会机器学习的JavaScript开发者不是好的前端工程师. 原文: Machine Learning with JavaScript : Part 1 译者: Fundebug ...

  8. 机器学习1—简介及Python机器学习环境搭建

    简介 前置声明:本专栏的所有文章皆为本人学习时所做笔记而整理成篇,转载需授权且需注明文章来源,禁止商业用途,仅供学习交流.(欢迎大家提供宝贵的意见,共同进步) 正文: 机器学习,顾名思义,就是研究计算 ...

  9. 机器学习、NLP、Python和Math最好的150余个教程(建议收藏)

    编辑 | MingMing 尽管机器学习的历史可以追溯到1959年,但目前,这个领域正以前所未有的速度发展.最近,我一直在网上寻找关于机器学习和NLP各方面的好资源,为了帮助到和我有相同需求的人,我整 ...

随机推荐

  1. Linux磁盘空间占满问题快速定位

    1.df -h命令查看系统盘与各个磁盘的占用空间比率 [tidb@:vg_adn_tidbCkhsTest:172.31.30.62 /dev]$df -Th Filesystem Type Size ...

  2. October 11th 2017 Week 41st Wednesday

    If you don't know where you are going, you might not get there. 如果你不知道自己要去哪里,你可能永远到不了那里. The reward ...

  3. IIS中添加MIME类型

    今天上传一个html5后台管理模版的时候,在服务器上预览发现网页加载的远程woff类型的字体不显示,如下图所示: 在本地预览的时候,正常加载字体文件应该是这样的: 利用url访问字体文件的时候提示:该 ...

  4. 【Android自动化】Subprocess.check_output()简单用法

    # -*- coding:utf-8 -*- import os import sys import subprocess from uiautomator import device as d cm ...

  5. JVM各垃圾收集器对比

    本随笔是<深入理解Java虚拟机 JVM高级特性与最佳实践>读书笔记. 1.JDK1.7之后的HotSpot虚拟机所包含的所有收集器如下: 解读: 1. 总共有7种垃圾收集器 2.Seri ...

  6. Object Detection API 相关

    训练官方提供的数据集: http://blog.csdn.net/LiJiancheng0614/article/details/77756252 训练自己的数据集(墙外): https://medi ...

  7. 【转】android Toast大全(五种情形)建立属于你自己的Toast

    Toast用于向用户显示一些帮助/提示.下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast. 1.默认效果 代码 Toast.makeText(getApplicationCo ...

  8. Windows连接Linux虚拟机里面的Docker容器

    一.Windows.Linux虚拟机.docker关系图 如果此时在Windows宿主机中pingDocker容器是ping不同的,因为在宿主机上没有通往172.17.0.0/24网络的路由,宿主机会 ...

  9. [SQL123] Oracle SQL 统计一定时间间隔内的数据

    --Group by State_ts "per X minutes"select to_char(state_ts, 'hh24')||':'||floor(to_char(st ...

  10. [转]Bing Maps Tile System 学习

    原文链接:Bing Maps Tile System 学习