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中的线程进行网络编程的入门教程
Apr 15 Python
django之常用命令详解
Jun 30 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
Python使用numpy实现BP神经网络
Mar 10 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
Python 字符串与二进制串的相互转换示例
Jul 23 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
python pcm音频添加头转成Wav格式文件的方法
Jan 09 Python
python实现QQ邮箱/163邮箱的邮件发送
Jan 22 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
python写一个随机点名软件的实例
Nov 28 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/28 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
prototype 中文参数乱码解决方案
2009/11/09 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
javascript控制swfObject应用介绍
2012/11/29 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
js字符串转成JSON
2013/11/07 Javascript
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
深入理解Commonjs规范及Node模块实现
2017/05/17 Javascript
webpack打包react项目的实现方法
2018/06/21 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
2020/05/11 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
Weblogc domain问题
2014/01/27 面试题
主题酒店策划书
2014/01/28 职场文书
新护士岗前培训制度
2014/02/02 职场文书
推荐信格式要求
2014/05/09 职场文书
项目建议书怎么写
2014/05/15 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
皇城相府导游词
2015/02/06 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技