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使用tcp实现局域网内文件传输
Mar 20 Python
在python中实现强制关闭线程的示例
Jan 22 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
python实现美团订单推送到测试环境,提供便利操作示例
Aug 09 Python
python__name__原理及用法详解
Nov 02 Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
Pytorch 实现变量类型转换
May 17 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 03 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 file_get_contents函数轻松采集html数据
2010/04/22 PHP
ThinkPHP惯例配置文件详解
2014/07/14 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
PHP线程的内存回收问题
2016/07/08 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python装饰器用法实例总结
2018/05/26 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
2016公司中秋节寄语
2015/12/07 职场文书
小学班主任心得体会
2016/01/07 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
教学反思怎么写
2016/02/24 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
MySQL分布式恢复进阶
2022/07/23 MySQL