Tensorflow2.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):
shape(xs,[1])#将数据reshape为⼀维张量
shape(ys,[1])
#⽤梯度下降法进⾏数据迭代
with tf.GradientTape()as tape:
_duce_mean(tf.pow((model(xs)-ys),2))/(2*1000)
adient(_loss,[weight,bias])
opt.apply_gradients(zip(grads,[weight,bias]))
print('Training loss is:',_loss.numpy())
tensorflow版本选择print(weight)
print(bias)
1000此迭代以后的结果如下:
最后我们看到经过1000次的迭代,得到weight=5.999995和bias=3.6800025,也就是得到的拟合函数为 y =5.999995 * x + 3.6800025, 和实际函数y= 6 * x + 3.68相⽐误差很⼩。