當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch TransformerEncoderLayer用法及代碼示例


本文簡要介紹python語言中 torch.nn.TransformerEncoderLayer 的用法。

用法:

class torch.nn.TransformerEncoderLayer(d_model, nhead, dim_feedforward=2048, dropout=0.1, activation=<function relu>, layer_norm_eps=1e-05, batch_first=False, norm_first=False, device=None, dtype=None)

參數

  • d_model-輸入中預期特征的數量(必需)。

  • nhead-多頭注意力模型中的頭數(必需)。

  • dim_feedforward-前饋網絡模型的維度(默認=2048)。

  • dropout-輟學值(默認= 0.1)。

  • activation-中間層的激活函數,可以是字符串(“relu”或“gelu”)或一元可調用函數。默認值:relu

  • layer_norm_eps-層標準化組件中的 eps 值(默認值=1e-5)。

  • batch_first-如果 True ,則輸入和輸出張量提供為 (batch, seq, feature)。默認值:False

  • norm_first-如果 True ,則層規範分別在注意和前饋操作之前完成。不然後麵就完事了。默認值:False(之後)。

TransformerEncoderLayer由self-attn和前饋網絡組成。該標準編碼器層基於論文“Attention Is All You Need”。 Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones、Aidan N Gomez、Lukasz Kaiser 和 Illia Polosukhin。 2017年,你所需要的就是關注。 《神經信息處理係統進展》,第 6000-6010 頁。用戶在應用過程中可以進行修改或以不同的方式實現。

例子::
>>> encoder_layer = nn.TransformerEncoderLayer(d_model=512, nhead=8)
>>> src = torch.rand(10, 32, 512)
>>> out = encoder_layer(src)
或者,當 batch_firstTrue 時:
>>> encoder_layer = nn.TransformerEncoderLayer(d_model=512, nhead=8, batch_first=True)
>>> src = torch.rand(32, 10, 512)
>>> out = encoder_layer(src)

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.nn.TransformerEncoderLayer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。