keras線性迴歸實現

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章