首頁 > 後端開發 > Python教學 > 有狀態 LSTM 如何在批次大小為 1 的情況下運作?

有狀態 LSTM 如何在批次大小為 1 的情況下運作?

Linda Hamilton
發布: 2024-11-05 20:10:03
原創
757 人瀏覽過

How do Stateful LSTMs work with a batch size of 1?

了解Keras 長短期記憶(LSTM)

重塑資料與狀態LSTM

重塑資料與狀態LSTM

  • 重塑資料
資料序列被重塑為[樣本、時間步長、特徵],使LSTM 層能夠處理時間序列資料序列。

時間步代表每個序列中的時間點數量,而特徵代表不同的變數或通道。

  • 有狀態 LSTM
有狀態 LSTM跨批次維護其內部狀態,使它們能夠記住先前的輸出。

這對於先前時間步驟的上下文對於預測未來事件很重要的任務很有用。

  • 問題1:時間步長和特徵
帶有粉紅色方框的圖像說明了「多對一」的情況,其中黑框(特徵)的數量為3,且粉紅色框(時間步長)是可變的。

這表示輸入序列每個時間步包含 3 個特徵。

  • 問題 2:有狀態 LSTM
  • 在提供的程式碼範例中,使用了有狀態 LSTM,但批次大小設定為 1。
這意味著模型一次在一個序列上進行訓練,並且單元記憶體值在每個批次後重置。

使用有狀態 LSTM 的目的是在單一序列中跨時間步保留上下文,儘管批次大小為 1。

  • 影像對應
  • 第一個圖(展開,批次大小!= 1):每行代表LSTM內部狀態(橘色框)的內容和輸出(綠色框)在批次內的每個時間步。

第二個圖(批次大小= 1):與第一個圖類似,但每一行代表狀態和輸出的內容單一批次中的整個序列(批次大小為1)。

  • 附加說明
  • 多元系列:處理多元序列,其中每個時間步包含多個特徵,重塑層和LSTM 層中的特徵數量應等於資料中的特徵總數。
時間分佈層: TimeDistributed 層可用於對序列中的每個時間步應用相同的變換,從而有效地創建多對多層。

以上是有狀態 LSTM 如何在批次大小為 1 的情況下運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板