當前位置:編程學習大全網 - 網站源碼 - Pytorch參數“batch_first”的理解

Pytorch參數“batch_first”的理解

用過PyTorch的朋友大概都知道,對於不同的網絡層,輸入的維度是不壹樣的,但是第壹個維度通常是batch_size,比如torch.nn.Linear的輸入(batch_size,in_features)和torch.nn.Conv2d的輸入(batch_size,C,H,W)。而RNN的輸入是(seq_len,batch_size,input_size),batch_size位於二次元!雖然可以切換batch_size和序列長度seq_len,但是只需要讓batch_first=True。

但是為什麽默認情況下RNN輸入不是batch first=True?這是為了便於並行計算。因為cuDNN中RNN的API是二次元的batch_size!進壹步說,cuDNN為什麽要這麽做?因為batch first意味著當模型的輸入(壹個張量)存儲在內存中時,首先存儲第壹個序列,然後是第二個...如果是SEQ _倫菲爾特,模型的輸入存儲在內存中,首先存儲所有序列的第壹個單元,然後存儲第二個單元...兩者的區別如下所示:

[參考資料] /p/32103001

  • 上一篇:idea登錄界面寫好怎麽和下壹個界面連接起來
  • 下一篇:jasperreport還有人用嗎
  • copyright 2024編程學習大全網