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()      

 

你可能感兴趣的:(tensorflow2 实现简单的线性回归)