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 continue语句用法实例
Mar 11 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
python使用7z解压apk包的方法
Apr 18 Python
python中管道用法入门实例
Jun 04 Python
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
Jun 05 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
Python3 SSH远程连接服务器的方法示例
Dec 29 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
Python3之手动创建迭代器的实例代码
May 22 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 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获取网页里所有图片并存入数组的方法
2015/04/06 PHP
php变量与JS变量实现不通过跳转直接交互的方法
2017/08/25 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
JavaScript全局函数使用简单说明
2011/03/11 Javascript
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
2012/07/31 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
python实现K最近邻算法
2018/01/29 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
python实现微信打飞机游戏
2020/03/24 Python
Django nginx配置实现过程详解
2020/09/10 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
办公室内勤工作职责
2013/12/11 职场文书
安全生产检讨书
2014/01/21 职场文书
单位考核鉴定意见
2015/06/05 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
学校运动会感想
2015/08/10 职场文书
导游词之天津古文化街
2019/11/09 职场文书
SQL Server删除表中的重复数据
2022/05/25 SQL Server
mysql序号rownum行号实现方式
2022/12/24 MySQL