【pytorch】LSTM | GRU使用

1. LSTM

  • 長短期記憶網絡,主要用於做序列建模用

  • 原理
    在這裏插入圖片描述

  • 主要參數
    在這裏插入圖片描述

    • batch_first:多gpu訓練時要設置爲True
    • bidirectional: True表示雙向
    • input_size: 序列的特徵維度
    • hidden_size:隱含層的特徵維度
  • 使用

>>> rnn = nn.LSTM(10, 20, 2)
>>> input = torch.randn(5, 3, 10)		# seq, batch, features
>>> h0 = torch.randn(2, 3, 20)
>>> c0 = torch.randn(2, 3, 20)
>>> output, (hn, cn) = rnn(input, (h0, c0))
  • 說明
    • 一般在使用的時候都是省略了h,c。h是t時刻的隱藏狀態,c是t時刻的單元格狀態
    • 注意: 多GPU訓練的時候,需要將batch放到最前面

2. GRU

  • 同樣也是主要用於序列建模

  • 原理
    在這裏插入圖片描述

  • 主要參數
    在這裏插入圖片描述

    • 主要就是初始化和輸入時
  • 使用

>>> rnn = nn.GRU(10, 20, 2)
>>> input = torch.randn(5, 3, 10)
>>> h0 = torch.randn(2, 3, 20)
>>> output, hn = rnn(input, h0)
  • 注意
    • h0 的特徵shape是固定的(num_layers*num_directions, batch, hidden_size)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章