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 相关文章推荐
pyramid配置session的方法教程
Nov 27 Python
Python实现简单的代理服务器
Jul 25 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
python模拟登陆,用session维持回话的实例
Dec 27 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
python 并发下载器实现方法示例
Nov 22 Python
结束运行python的方法
Jun 16 Python
python如何代码集体右移
Jul 20 Python
python字典按照value排序方法
Dec 28 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 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
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
javascript内存管理详细解析
2013/11/11 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
python中pycurl库的用法实例
2014/09/30 Python
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Django 开发环境与生产环境的区分详解
2019/07/26 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
护士自荐信
2013/10/25 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
大学运动会入场词
2014/02/22 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书
高中班主任心得体会
2016/01/07 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python