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的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
Python面向对象编程基础解析(一)
Oct 26 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
Jul 07 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
python生成requirements.txt的两种方法
Sep 18 Python
python实现加密的方式总结
Jan 19 Python
python实现与redis交互操作详解
Apr 21 Python
python json.dumps() json.dump()的区别详解
Jul 14 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判断文件上传图片格式的实例详解
2017/09/30 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
动态为事件添加js代码示例
2009/02/15 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
2017/01/13 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
使用Python设计一个代码统计工具
2018/04/04 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
人工神经网络算法知识点总结
2019/06/11 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Python实现汇率转换操作
2020/05/03 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
开票证明
2015/06/23 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书