首页 > 其他分享 >案例:TensorFlow实现线性回归

案例:TensorFlow实现线性回归

时间:2024-04-10 10:30:46浏览次数:25  
标签:compat 案例 error v1 bias tf 线性 TensorFlow 100


1、线性回归原理复习


     1)构建模型
            y = w1x1+w2x2 + ..... wnxn+ b
      2)构造损失函数
            均方误差
      3)优化损失
             梯度下降


2、案例:实现线性回归的训练


     准备真实数据    100样本
     x特征值形状(100,1)
     y_ _true 目标值(100, 1)
     y_ _true = 0.8x + 0.7
    假定x和y之间的关系满足
           y=kx+b
           k≈0.8    b≈0.7
          流程分析:
        (100,1) * (1, 1) = (100, 1)
         y_ predict = X * weights(1, 1) + bias(1, 2)
1)构建模型
y_ predict = tf.matmul(x, weights) + bias
2)构造损失函数
error = tf. reduce_ mean(tf. square(y. _predict - y_ .true))
3)优化损失
optimizer = tf.train. GradientDescentOpt imizer(learning_ rate=0. 01) . minimize(error)

代码示例:

import tensorflow as tf
tf.compat.v1.disable_eager_execution()
def linear_regression():
    """
    自实现一个线性回归
    1)准备数据
    2)模型构造
    3)构造损失函数
    4)优化损失
    :return:
    """
    # 准备数据
    X = tf.compat.v1.random_normal(shape=[100,1])
    y_true = tf.matmul(X,[[0.8]])+0.7
    # 构造模型 定义模型参数用 变量
    weights = tf.Variable(initial_value=tf.compat.v1.random_normal(shape=[1,1]))
    bias = tf.Variable(initial_value=tf.compat.v1.random_normal(shape=[1,1]))
    y_predict = tf.matmul(X,weights)+bias
    # 构造损失函数
    error = tf.reduce_mean(tf.square(y_predict-y_true))
    #优化损失
    optimizer = tf.compat.v1.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)
    # 显示初始化变量
    init = tf.compat.v1.global_variables_initializer()
    # 开启会话
    with tf.compat.v1.Session() as sess:
        # 初始化变量
        sess.run(init)
        # 查看初始化模型参数之后的值
        print("训练前模型参数:权重%f ,偏置%f,损失为%f" % (weights.eval(),bias.eval(), error.eval()))
        # 开始训练
        for i in range(1000):
            sess.run(optimizer)
            print("第%d次训练后模型参数:权重%f ,偏置%f,损失为%f" % (i+1,weights.eval(), bias.eval(), error.eval()))

    return None

linear_regression()

学习率越高,训练到较好结果步数越小,但是过大会出现梯度爆炸现象

3、优化

1、增加变量显示

1)创建事件文件

2)收集变量

3)合并变量

4)每次迭代运行一次合并变量

5)将summary对象写入事件文件

调用tensorboard显示

2、添加命名空间

更直观的看到变量的变化

3、模型保存与加载

1)保存:saver.save(sess,path)

2)加载:saver.restore(sess,path)

标签:compat,案例,error,v1,bias,tf,线性,TensorFlow,100
From: https://blog.csdn.net/weixin_47256446/article/details/137552373

相关文章

  • 最短编辑距离(线性dp)-java
    最短编辑问题也是一种非常经典的二维线性dp问题。 文章目录前言一、最短编辑距离问题二、算法思路1.dp[i][j]的情况 2.边界问题初始化3.状态转移方程三、代码如下1.代码如下2.读入数据3.代码运行结果总结前言最短编辑问题也是一种非常经典的二维线性dp问......
  • UI自动化测试案例
    备注:本文为博主原创文章,未经博主允许禁止转载。如有问题,欢迎指正。个人笔记(整理不易,有帮助点个赞)笔记目录:笔记本~笔记目录_airtest和selenium那个好用-CSDN博客个人随笔:工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客案例,在“直播吧”app,实现自动化点击......
  • 领域驱动设计实战案例分析
    ​领域驱动设计(Domain-DrivenDesign,DDD)是一种软件开发方法,它强调以业务领域为中心的软件设计和开发。DDD主要通过将复杂的业务逻辑分解为更小的部分(称为领域模型)来管理复杂性。这种方法鼓励开发者和业务专家紧密合作,确保软件解决方案能够准确地反映业务需求。以下是一种领域......
  • 最长公共子序列(线性dp)-java
    本文主要来描述两个字符串的最长公共子序列问题文章目录前言一、最长公共子序列二、算法思路1.dp[i][j]的四种情况2.dp[i-1][j]、dp[i][j-1]、dp[i-1][j-1]的关系3.dp数组的状态转移方程 4.dp数组具体如下三、代码如下1.代码如下(示例):2.读入数据3.代码运行结......
  • C语言循环结构综合案例1
    昨天我们复习了了选择结构的综合案例,那么我们今天开始复习循环结构。循环结构的内容比较多,所以我会将内容分为两天给大家展示,那么今天的实例题目也会比较多一些,所以也请各位能够耐心完成学习我列于文中一些小题,在独立完成理解后,我相信大家对C语言的学习和理解也会有一些全新的......
  • R语言多元Logistic逻辑回归 应用案例
    原文链接:http://tecdat.cn/?p=2640  原文出处:拓端数据部落公众号 可以使用逐步回归过程确定多元逻辑回归。此函数选择模型以最小化AIC。如何进行多元逻辑回归可以使用step函数通过逐步回归过程确定多元逻辑回归。此函数选择模型以最小化AIC。通常建议不要盲目地遵循逐步......
  • 3.类与对象(中篇)介绍了类的6个默认构造函数,列举了相关案例,实现了一个日期类
    1.类的6个默认成员函数如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。默认成员函数是一种特殊成员函数:​......
  • 使用Stream流分组求和案例
    需求:现有一个User对象,包含有用户名username,性别sex,年龄age,考试分数score。现在需要对UserList,相同用户名和性别和年龄的人将他们的学科分数相加,算出总分思路:先将userList转换为Map,key为User对象Map<String,List<User>>collect=userList.stream().collect(......
  • 【交换机】华三交换机操作案例
     一、H3C交换机的基础配置1.创建VLAN:(可根据需求设置vlan)system-view//进入配置视图vlan20//创建vlan20,并进入vlan20配置视图quit//退出此设置2.将端口加入到VLAN中:(单个)interfaceGigabitEthernet1/0/49//进入此端口(此命令可简写:intg1/0/49)port......
  • TensorFlow2数据类型
    1.1数值类型数值类型的张量是TensorFlow的主要数据载体,分为:1.标量(Scalar)单个的实数,如1.2,3.4等,维度数(Dimension,也叫秩)为0,shape为[]2.向量(Vector)n个实数的有序集合,通过中括号包裹,如[1.2],[1.2,3.4]等,维度数为1,长度不定,shape为[......