TensorFlow框架—实现简单线性回归

该博客介绍了如何使用TensorFlow构建并训练一个简单的线性回归模型。通过随机生成的数据,定义模型参数,构建损失函数并应用梯度下降优化器进行训练。作者还观察到学习率对模型训练速度和效果的影响,指出适中的学习率(如0.01-0.1)可取得良好效果,而过大的学习率可能导致梯度爆炸。
摘要由CSDN通过智能技术生成
import tensorflow as tf
def Linear_regression():
    """
    实现一个线性回归
    """
    #1 准备数据
    x = tf.random_normal(shape=[100,1])
    y_true = tf.matmul(x,[[0.8]])+0.7
    #2 构建模型
    #定义模型参数 用 变量 若设置参数trainable=False,则训练过程中参数值不变
    weight = tf.Variable(initial_value=tf.random_normal(shape=[1,1]))
    bias = tf.Variable(initial_value=tf.random_normal(shape=[1,1]))
    y_predict = tf.matmul(x,weight)+bias
    #3 构建损失函数
    error = tf.reduce_mean(tf.square(y_predict-y_true))
    #4 优化损失
    optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01).minimize(error)

    #初始化变量
    init = tf.global_variables_initializer()

    #开启会话
    with tf.Session() as sess:
        #初始化变量
        sess.run(init)

        #查看初始化模型参数之后的值
        print("训练前模型参数为:权重%f,偏置%f,损失为%f"%(weight.eval(),bias.eval(),error.eval()))

        #开始训练
        for i in range(1000):
            sess.run(optimizer)
            #print放循环里面查看迭代过程
            print("第%d次训练后训练前模型参数为:权重%f,偏置%f,损失为%f" % (i+1,weight.eval(), bias.eval(), error.eval()))


    return None
if __name__=="__main__":
    Linear_regression()

 还通过实验发现训练次数不变,学习率越大,训练速度越快,效果越好;但学习率不能太大,一搬取0.01~0.1都适合,当过大时会发生梯度爆炸!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值