首頁 >後端開發 >Python教學 >時間步長和特徵如何影響 Keras LSTM 效能?

時間步長和特徵如何影響 Keras LSTM 效能?

Susan Sarandon
Susan Sarandon原創
2024-11-27 06:55:39252瀏覽

How Do Time Steps and Features Affect Keras LSTM Performance?

了解Keras LSTM 中的時間步長和特徵

為了回答您的問題,讓我們更深入地了解相關的時間步長和特徵的概念到Keras 中實現的LSTM。

時間步長和特徵

在提供的Keras 範例中,trainX 資料重新整形為以下形狀:

(trainX.shape[0], look_back, 1)
  • 時間步長:
  • Look_back 值表示每個序列中的時間步數。這裡,它設定為 3,這表示 trainX 中的每一行都包含先前的三個資料點。
  • 特徵:
  • 序列中的特徵數量對應於資料張量的最後一個維度。在本例中,它是 1,表示序列僅包含一個特徵(例如股票價格)。

關於您從 Karpathy 部落格連結的圖像,每個「粉紅色」矩形代表一個特徵,並且「綠色」矩形表示時間步長。因此,圖中的圖表將對應於具有三個時間步長和兩個特徵的時間序列。

有狀態 LSTM

有狀態 LSTM 維護允許它們的內部狀態記住他們在處理給定序列的過程中學到了什麼。當將它們與 Keras 一起使用時,您將 stateful 參數設為 True。

在您的範例中,您將 batch_size 設為 1 並使用 model.fit() 進行 shuffle=False 的訓練。這表示每個批次包含一個序列,而 LSTM 會依照序列在訓練資料中出現的順序處理序列。因此,LSTM 的狀態會跨批次保留,使其能夠從整個序列中學習。

透過在訓練時期之間重置 LSTM 的狀態,您可以有效地「重新開始」每個時期的學習過程。然而,LSTM 仍然會記住它在各個時期學習到的整體模式。

重要說明

  • 如果您有多個獨立序列(例如,對兩隻股票進行建模)價格同時),每個序列應該有自己的LSTM 層。
  • 時間步數必須是根據您正在處理的特定問題和數據來決定。
  • 當您想要學習長序列的依賴性時,有狀態 LSTM 可能很有用,但應謹慎使用,因為它們可能會導致過度擬合。

以上是時間步長和特徵如何影響 Keras LSTM 效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn