TensorFlow一元线性回归实践

本文通过实例详细介绍了如何运用TensorFlow进行一元线性回归的实践操作,从构建模型到训练过程,展示了TensorFlow在解决简单回归问题上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import tensorflow as tf
import numpy as np

#定义超参数
learning_rate=0.01
max_train_steps=1000
log_step=17

#输入数据
train_X=np.array([[3.3],[4.4],[5.5],[6.71],[6.93],[4.168],[9.779],[6.182],[7.59],[2.167],[7.042],[10.791],[5.313],[7.997],[5.654],[9.27],[3.1]],dtype=np.float32)
train_Y=np.array([[1.7],[2.76],[2.09],[3.19],[1.694],[1.573],[3.366],[2.596],[2.53],[1.221],[2.827],[3.465],[1.65],[2.904],[2.42],[2.94],[1.3]],dtype=np.float32)
total_samples=train_X.shape[0]

#构建模型
X=tf.placeholder(tf.float32,[None,1])
W=tf.Variable(tf.random_normal([1,1]),name="weight")
b=tf.Variable(tf.zeros([1]),name="bias")
Y=tf.matmul(X,W)+b

#定义损失函数
Y_=tf.placeholder(tf.float32,[None,1])
loss=tf.reduce_sum(tf.pow(Y-Y_,2))/(total_samples)

#创建优化器
optimizer=tf.train.GradientDescentOptimizer(learning_rate)

#定义单步训练操作
train_op=optimizer.minimize(loss)

#创建会话
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    
    #迭代训练
    print("开始训练:")
    for step in range(max_train_steps):
        sess.run(train_op,feed_dict={X:train_X,Y_:train_Y})
        if step % log_step == 0:
            c=sess.run(loss,feed_dict={X:train_X,Y_:train_Y})
            print("Step:%d,loss==%.4f,W==%.4f,b==%.4f"%(step,c,sess.run(W),sess.run(b)))
    final_loss=sess.run(loss,feed_dict={X:train_X,Y_:train_Y})
    weight,bias=sess.run([W,b])
    print("Step:%d,loss==%.4f,W==%.4f,b==%.4f"%(max_train_steps,final_loss,sess.run(W),sess.run(b)))
    print("线性模型是:Y==%.4f*X+%.4f"%(weight,bias))

运行结果:

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值