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写的贪吃蛇游戏例子
Jun 16 Python
python调用新浪微博API项目实践
Jul 28 Python
python使用htmllib分析网页内容的方法
May 08 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
Python表示矩阵的方法分析
May 26 Python
关于反爬虫的一些简单总结
Dec 13 Python
python SMTP实现发送带附件电子邮件
May 22 Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 Python
用Python实现BP神经网络(附代码)
Jul 10 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 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
延长phpmyadmin登录时间的方法
2011/02/06 PHP
php中explode与split的区别介绍
2012/10/03 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
javascript基本类型详解
2014/11/28 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
JS+HTML5 FileReader对象用法示例
2017/04/07 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
2017/09/21 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
微信小程序实现音乐播放页面布局
2020/12/11 Javascript
python字符串连接方式汇总
2014/08/21 Python
Python编程中的反模式实例分析
2014/12/08 Python
Python类的动态修改的实例方法
2017/03/24 Python
Python编程实现蚁群算法详解
2017/11/13 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
python求最大连续子数组的和
2018/07/07 Python
Python多线程编程之多线程加锁操作示例
2018/09/06 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
给全校老师的建议书
2014/03/13 职场文书
初二学习计划书范文
2014/04/27 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android