model.fit训练不显示结果使用 verbose=0实现
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(0,100,30)
np.random.shuffle(x)
y=x*3+7+np.random.randn(30)*5
fig=plt.figure()
ax=plt.subplot(1,1,1)
ax.scatter(x,y,c="b")
model=keras.Sequential()#添加一个顺序模型
model.add(keras.layers.Dense(1,input_dim=1,activation="relu"))#增加一层输出,输入都是1
#激活函数是“relu”
model.summary()#查看神经网络的结构
model.compile(optimizer="adam",loss="mse")#编译神经网络,指定优化器为“adam”,损失函数#是“均分误差”
#cost=model.fit(x,y,epochs=3000,verbose=0)#可以使用model.fit来训练,epochs指定训练的次数,verbose=0 设置不显示训练结果,batch_size 设置batch的大小
plt.ion()#plot不会停住,会一直绘图
plt.show()#显示图像
for i in range(3000):
cost=model.train_on_batch(x,y)#这里使用train_on_batch来训练
if i%100==0:
try:
ax.lines.pop(-1)#删掉当前的线条
except Exception:
pass
print("loss:",cost)
py=model.predict(x)
ax.plot(x,py,c="r")#绘制线条
plt.pause(0.1)#暂停0.1s