tensorflow2 实现简单的线性回归

话不多说,直接上代码

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt


cont=2000
input_x = np.random.rand(cont)
rand_x = np.random.rand(cont)#干扰项
input_y = 5 * input_x + 0.227 + rand_x
weight = tf.Variable(1.0, dtype=tf.float32, name="weight")
bias = tf.Variable(1.0, dtype=tf.float32, name="bias")

#绘制出原始数据
plt.scatter(input_x, input_y)
plt.show()

def model(x):
    y = tf.multiply(x, weight) + bias
    return y


opt = tf.optimizers.Adam(1e-1)

for xs, ys in zip(input_x, input_y):
    xs = np.reshape(xs, [1])
    ys = np.reshape(ys, [1])
    loss = lambda: tf.losses.MeanSquaredError()(model(xs), ys)
    opt.minimize(loss, [weight, bias])
    print(loss().numpy())

print(weight)
print(bias)

#作图,显示线性回归的结果
plt.plot(input_x, input_y, 'b', label='Real data')    #真实值的散点
plt.plot(input_x, input_x*weight  + bias, 'r', label='Predicted data')    #预测值的拟合线条
plt.legend()    
plt.show()      

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值