使用matplotlib的pyplot绘制图件显示回归(预测)效果
plt.ion()#plt.show之后仍然继续绘图
import tensorflow.compat.v1 as tf
import numpy as np
import matplotlib.pyplot as plt
tf.disable_eager_execution()
xdata=np.random.rand(100).astype(np.float32)
noise=np.random.normal(0,0.005,xdata.shape)
ydata=xdata*0.1+0.3+noise
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.scatter(xdata,ydata)
plt.ion()#plt.show之后仍然继续绘图
plt.show()
#create tensorflow struct start
Weights=tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases=tf.Variable(tf.zeros([1]))
y=Weights*xdata+biases
loss=tf.reduce_mean(tf.square(y-ydata))#损失函数
#optimizer=tf.train.GradientDescentOptimizer(0.4)#优化器
optimizer=tf.train.AdamOptimizer(0.2)
train=optimizer.minimize(loss)#训练迭代
init=tf.global_variables_initializer()#初始化所有的变量
#create tensorflow struct end
sess=tf.Session()
sess.run(init)
for step in range(200):
sess.run(train)
if step % 10==0:
try:
ax.lines.remove(lines[0])
except Exception:
pass
prey=sess.run(y)#计算预测值
lines=ax.plot(xdata,prey)
plt.pause(0.2)
print(step,sess.run(Weights),sess.run(biases))
效果如下图: