Tensorflow 2.0 线性回归案例

本文介绍一个简单的线性回归例子:通过一个随机初始点(a1,b1)来拟合y=a*x+ b,
我们要拟合的函数模型:y= 6 * x + 3.68
代码如下:

#导入必要的模块
import tensorflow as tf
import numpy as np
#定义要拟合的函数模型
X =np.random.rand(1000) #随机选择1000个数进行1000次迭代
Y =6*X+3.68

#拟合过程中的初始点(随机选择一个点)
weight=tf.Variable(1.,dtype=tf.float32,name='weight')
bias=tf.Variable(1.,dtype=tf.float32,name='bias')
#定义拟合函数
def model(xs):
    logits=tf.multiply(xs,weight)+bias
    return logits
opt=tf.optimizers.Adam(1e-1) #选择优化器,是一种梯度下降的方法
for xs,ys in zip(X,Y):
    xs=np.reshape(xs,[1]) #将数据reshape为一维张量
    ys=np.reshape(ys,[1])
    #用梯度下降法进行数据迭代
    with tf.GradientTape() as tape:
        _loss=tf.reduce_mean(tf.pow((model(xs)-ys),2))/(2*1000)
        grads=tape.gradient(_loss,[weight,bias])
        opt.apply_gradients(zip(grads,[weight,bias]))
        print('Training loss is:',_loss.numpy())
print(weight)
print(bias)

1000此迭代以后的结果如下:
在这里插入图片描述
最后我们看到经过1000次的迭代,得到weight=5.999995和bias=3.6800025,也就是得到的拟合函数为 y =5.999995 * x + 3.6800025, 和实际函数y= 6 * x + 3.68相比误差很小。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值