[英]Real time plotting the model predictions while training
我試圖通過查看每批更新的圖上的實際y值來預測模型對加班的訓練方式,我用谷歌搜索了它的完成方式和令人困惑的地方,我最接近它的是在這里添加的代碼:
def cb(x, y_true):
def _(batch, logs):
s,e=batch*batch_size,(batch+1)*batch_size
y_pred = model.predict(
x[s:e],
batch_size=batch_size
)
plt.clf()
plt.plot(y_true[s:e], label='true')
plt.plot(y_pred, label='pred')
plt.legend()
plt.show()
return _
cb_plot=keras.callbacks.LambdaCallback(on_batch_end=cb(train_X,train_y))
問題是我需要每次手動關閉圖形以繼續訓練,因為show
阻塞了。 我嘗試使用block=False
,嘗試使用ion
進行交互,但這使我進入了空白的無響應圖形窗口。 任何人都有一個想法,需要在此處進行更改以使其起作用?
順便說一句,我沒有看到TensorBoard可以向您展示模型通過訓練與真實y值相比所做的預測,是否有可能在tensorboard中看到它而不是手動實現它?
謝謝!
嘗試通過以下方式使用matplotlib qt后端:
%matplotlib qt
或者如果您正在運行.py文件
from IPython import get_ipython
get_ipython().run_line_magic('matplotlib', 'qt')
然后使用ax = plt.axes()
創建全局axe
對象,最后使用它繪制繪圖:
def plot_stuff():
ax.clear()
x = np.linspace(-10, 10, 50)
ax.plot(x, np.sin(x))
而且,如果要繪制預測值,則可以創建一些自定義指標功能,這些功能將僅返回y_true
或y_pred
值。 並使用TensorBoard
回調進行繪制。
這為我工作:
plt.show(block=False)
接着
def cb(x, y_true):
def _(batch, logs):
s,e=batch*batch_size,(batch+1)*batch_size
y_pred = model.predict(
x[s:e],
batch_size=batch_size
)
plt.clf()
plt.plot(y_true[s:e], label='true')
plt.plot(y_pred, label='pred')
plt.axis([0, batch_size, -1, 1])
plt.legend()
plt.draw()
plt.pause(0.0001)
return _
cb_plot=keras.callbacks.LambdaCallback(on_batch_end=cb(train_X,train_y))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.