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 相关文章推荐
动态创建类实例代码
Oct 07 Python
python实现bitmap数据结构详解
Feb 17 Python
Python模拟登录验证码(代码简单)
Feb 06 Python
玩转python爬虫之爬取糗事百科段子
Feb 17 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
Python xlwt设置excel单元格字体及格式
Apr 18 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
python浪漫表白源码
Apr 05 Python
对python3中的RE(正则表达式)-详细总结
Jul 23 Python
使用Python的turtle模块画国旗
Sep 24 Python
如何使用python写截屏小工具
Sep 29 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
2016/09/22 PHP
javascript document.referrer 用法
2009/04/30 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
js转html实体的方法
2016/09/27 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
使用python实现省市三级菜单效果
2016/01/20 Python
利用ctypes提高Python的执行速度
2016/09/09 Python
Django rest framework基本介绍与代码示例
2018/01/26 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
标准毕业生自荐信范文
2013/11/04 职场文书
劳资人员岗位职责
2013/12/19 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
年度考核自我鉴定
2014/02/02 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
我的理想演讲稿
2014/04/30 职场文书
安全横幅标语
2014/06/09 职场文书
初中信息技术教学反思
2016/02/16 职场文书
python glom模块的使用简介
2021/04/13 Python
Python中for后接else的语法使用
2021/05/18 Python
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle