亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在訓練時實時繪制模型預測

在訓練時實時繪制模型預測

胡說叔叔 2021-11-16 15:27:04
我試圖通過查看它對每個批次更新的圖上實際 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 中看到它而不是手動實現它?
查看完整描述

2 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

嘗試使用 matplotlib qt 后端:


%matplotlib qt

或者如果您正在運行 .py 文件


from IPython import get_ipython

get_ipython().run_line_magic('matplotlib', 'qt')

然后創建全局axe對象ax = plt.axes() 并最終使用它來繪制您的圖:


def plot_stuff():

   ax.clear()

   x = np.linspace(-10, 10, 50)

   ax.plot(x, np.sin(x))

如果您想繪制預測值,您可以創建一些自定義指標功能,這些功能將簡單地返回y_true或y_pred值。并使用TensorBoard回調來繪制它。


查看完整回答
反對 回復 2021-11-16
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

這對我有用:


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))


查看完整回答
反對 回復 2021-11-16
  • 2 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號