python 实现一个简单的线性回归案例


Posted in Python onDecember 17, 2020
#!/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 实现线性回归的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python调用cmd命令行制作刷博器
Jan 13 Python
Python中的闭包总结
Sep 18 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
python和shell获取文本内容的方法
Jun 05 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
python 穷举指定长度的密码例子
Apr 02 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
keras之权重初始化方式
May 21 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
python numpy中multiply与*及matul 的区别说明
May 26 Python
Python Matplotlib库实现画局部图
Nov 17 Python
Python内置包对JSON文件数据进行编码和解码
Apr 12 Python
python BeautifulSoup库的安装与使用
Dec 17 #Python
python中翻译功能translate模块实现方法
Dec 17 #Python
python中count函数知识点浅析
Dec 17 #Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 #Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 #Python
python使用smtplib模块发送邮件
Dec 17 #Python
python实现计算器简易版
Dec 17 #Python
You might like
目录,文件操作详谈―PHP
2006/11/25 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
php生成图片缩略图的方法
2015/04/07 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
Vuex之理解Store的用法
2017/04/19 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
vue.js实现简单购物车功能
2020/05/30 Javascript
Python实现字典的key和values的交换
2015/08/04 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python OS模块实例详解
2019/04/15 Python
python挖矿算力测试程序详解
2019/07/03 Python
Python正则表达式学习小例子
2020/03/03 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
企业务虚会发言材料
2014/10/20 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
煤矿安全保证书
2015/02/27 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
文艺委员竞选稿
2015/11/19 职场文书
python实现股票历史数据可视化分析案例
2021/06/10 Python
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis