#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @File : 自实现一个线性回归.py

# @Author: 赵路仓

# @Date : 2020/4/12

# @Desc :

# @Contact : 398333404@qq.com

import os

import tensorflow as tf

def linear_regression():

"""

自实现一个线性回归

:return:

"""

# 命名空间

with tf.variable_scope("prepared_data"):

# 准备数据

x = tf.random_normal(shape=[100, 1], name="Feature")

y_true = tf.matmul(x, [[0.08]]) + 0.7

# x = tf.constant([[1.0], [2.0], [3.0]])

# y_true = tf.constant([[0.78], [0.86], [0.94]])

with tf.variable_scope("create_model"):

# 2.构造函数

# 定义模型变量参数

weights = tf.Variable(initial_value=tf.random_normal(shape=[1, 1], name="Weights"))

bias = tf.Variable(initial_value=tf.random_normal(shape=[1, 1], name="Bias"))

y_predit = tf.matmul(x, weights) + bias

with tf.variable_scope("loss_function"):

# 3.构造损失函数

error = tf.reduce_mean(tf.square(y_predit - y_true))

with tf.variable_scope("optimizer"):

# 4.优化损失

optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)

# 收集变量

tf.summary.scalar("error", error)

tf.summary.histogram("weights", weights)

tf.summary.histogram("bias", bias)

# 合并变量

merged = tf.summary.merge_all()

# 创建saver对象

saver = tf.train.Saver()

# 显式的初始化变量

init = tf.global_variables_initializer()

# 开启会话

with tf.Session() as sess:

# 初始化变量

sess.run(init)

# 创建事件文件

file_writer = tf.summary.FileWriter("E:/tmp/linear", graph=sess.graph)

# print(x.eval())

# print(y_true.eval())

# 查看初始化变量模型参数之后的值

print("训练前模型参数为:权重%f,偏置%f" % (weights.eval(), bias.eval()))

# 开始训练

for i in range(1000):

sess.run(optimizer)

print("第%d次参数为:权重%f,偏置%f,损失%f" % (i + 1, weights.eval(), bias.eval(), error.eval()))

# 运行合并变量操作

summary = sess.run(merged)

# 将每次迭代后的变量写入事件

file_writer.add_summary(summary, i)

# 保存模型

if i == 999:

saver.save(sess, "./tmp/model/my_linear.ckpt")

# # 加载模型

# if os.path.exists("./tmp/model/checkpoint"):

# saver.restore(sess, "./tmp/model/my_linear.ckpt")

print("参数为:权重%f,偏置%f,损失%f" % (weights.eval(), bias.eval(), error.eval()))

pre = [[0.5]]

prediction = tf.matmul(pre, weights) + bias

sess.run(prediction)

print(prediction.eval())

return None

if __name__ == "__main__":

linear_regression()

以上就是python 实现一个简单的线性回归案例的详细内容,更多关于python 实现线性回归的资料请关注免费资源网其它相关文章!

4、python简单线性回归代码案例(完整)_python 实现一个简单的线性回归案例相关推荐

  1. python出现keyerror是什么意思_python – 从一个简单的函数调用导致这个KeyError的原因是什么?...

    以下错误是由以下代码引起的.我已经阅读了 KeyError: 0 is due to a dictionary file lacking an entry,但我仍然不知道字典文件是什么或我的代码是如何 ...

  2. 用Tkinter打造自己的Python IDE开发工具(1)建立一个简单的代码编辑器

    用Tkinter打造自己的Python IDE开发工具(1)建立一个简单的代码编辑器 很多Python初学者,安装完Python后,已经包含了IDLE代码开发和调试系统.都会再安装各种Python开发 ...

  3. python怎么查找代码位置查询_Python查询IP地址归属完整代码

    本文实例为大家分享了Python查询IP地址归属的具体代码,供大家参考,具体内容如下 #!/usr/bin/env python # -*- coding: utf-8 -*- #查找IP地址归属地 ...

  4. python推荐_Python中一个简单的基于内容的推荐引擎

    假设,我们需要为一个电子商务网站建立一个推荐引擎. 基本上,你有两种方法:基于内容和协同过滤.我们将看看每种方法的优缺点,然后深入一个基于内容的引擎的一个简单的实现(准备在Heroku之上部署!). ...

  5. python基础案例教程_Python基础教程 两个经典案例:阶乘和幂

    6.6.1 两个经典案例:阶乘和幂 本节探讨两个经典的递归函数.首先,假设你要计算数字n的阶乘. n的阶乘为n × (n1) × (n 2) × - × 1,在数学领域的用途非常广泛.例如,计 ...

  6. python怎么抓取网页倒计时_python实现的简单窗口倒计时界面实例

    本文实例讲述了python实现的简单窗口倒计时界面.分享给大家供大家参考.具体分析如下: 下面的代码通过Tkinter制作windows窗口界面,然后时间了一个简单的倒计时功能,代码可以直接运行 # ...

  7. python保存的代码在哪里_Python保存程序

    因为当我们编写任何程序并退出Python时,我们编写的程序都会丢失.因此,为了不丢失程序,我们将其保存. 因此,当我们使用Python IDLE(GUI)时,我们可以导航至"文件" ...

  8. python编写一个简单的程序验证码_Python实现一个简单的验证码程序

    老师讲完random函数,自己写的,虽然和老师示例的不那么美观,智能,但是也自己想出来的,所以记录一下,代码就需要自己不断的自己练习,实战,才能提高啊!不然就像我们这些大部分靠自学的人,何时能学会.还 ...

  9. python编译器写代码如何换行_python怎么换行写代码

    python怎么换行写代码? Windows换行符是'\r\n', Unix/Linux的换行符为'\n', Mac的换行符为'\r', 在python中,对换行符进行了统一处理,定义为'\n. 推荐 ...

最新文章

  1. Wince C++串口编程
  2. Java8新特性 Optional类
  3. Python闭包与装饰器
  4. 网页禁止复制的chrome插件办法
  5. 误操作导致系统只剩下lo
  6. 使用Q进行同步的Promises操作
  7. oracle cascade是什么意思啊,Oracle外键(Foreign Key)之级联删除(DELETE CASCADE)
  8. 异构SOA系统架构之Asp.net实现(兼容dubbo)
  9. css3为图片添加鼠标移入放大效果
  10. 这 8 个 Python 技巧让你的数据分析提升数倍!
  11. 如何搭建百度局域网离线地图服务器
  12. 西门子代理商 上海西纪帮您选型刚刚好
  13. adobe安装错误代码183
  14. 【从零开始学深度学习编译器】十三,如何在MLIR里面写Pass?
  15. Android存储子系统流程--vold
  16. oracle是java代码块,Oracle中施行java代码
  17. ToggleButton的学习与使用
  18. MySQL-SQL语句优化
  19. ios 渐变透明背景_PS教程丨扣出透明的玻璃瓶
  20. Adobe Fireworks CS5 | Adobe Dreamweaver CS5 | Adobe Photoshop CS5 Extended 绿色精简版最新下载地址...

热门文章

  1. java 类加载器_Java 类加载器
  2. mysql csv 表头_Mysql实例mysql 导出CSV文件 并带表头的方法
  3. java 托盘开发_基于java开发之系统托盘的应用
  4. numpy生成服从特定分布(制定分布)的数据
  5. java重载中this的作用_Java2:构造方法、方法重载和this关键字
  6. linux 卸载ninja,Linux下数据库管理工具:DbNinja
  7. python内存技巧_使用__slots__节省python内存技巧
  8. vm linux数据恢复,VMWARE虚拟机数据恢复
  9. linux top 命令各参数详解
  10. 改变JavaScript代码行的背景色