1 Transformer

torch.nn.Transformer(
    d_model=512, 
    nhead=8, 
    num_encoder_layers=6, 
    num_decoder_layers=6, 
    dim_feedforward=2048, 
    dropout=0.1, 
    activation=<function relu>, 
    custom_encoder=None, 
    custom_decoder=None, 
    layer_norm_eps=1e-05, 
    batch_first=False, 
    norm_first=False, 
    device=None, 
    dtype=None)

1.1 参数说明

d_modelencoder和decoder输入中预期特征的维度(默认=512)。
nhead多头attention的head数量(默认为8)
num_encoder_layersencoder层的数量(默认为6)
num_decoder_layers 

decoder 层的数量(默认为6)

dim_feedforward feedforward层的维度数量(默认为2048)
dropoutdropour值(默认为0.1)
activationencoder和decoder 中间层的激活函数(默认为relu)

1.2 forward 函数

forward(
    src, 
    tgt, 
    src_mask=None, 
    tgt_mask=None, 
    memory_mask=None, 
    src_key_padding_mask=None, 
    tgt_key_padding_mask=None, 
    memory_key_padding_mask=None)

1.2.1 参数说明

src

喂给encoder的 sequence

形状:

tgt

喂给decoder的sequence

形状:

src_mask

给src sequence的额外的mask

形状:(S,S)

tgt_mask

给tgt sequence的额外的mask

形状:(T,T)

memory_mask 

给encoder的输出的额外的mask

形状:(T,S)

1.2.2 输出

 

2  TransformerEncoderLayer

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)

2.1 参数说明

d_model encoder输入中预期特征的维度(默认=512)
nhead多头attention的head数量(默认为8)
dim_feedforward feedforward层的维度数量(默认为2048)
dropoutdropour值(默认为0.1)
activationencoder和decoder 中间层的激活函数(默认为relu)

2.2 forward 函数

forward(
    src, 
    src_mask=None, 
    src_key_padding_mask=None)
src

喂给encoder的 sequence

形状:

src_mask

给src sequence的额外的mask

形状:(S,S)

3  TransformerDecoderLayer

torch.nn.TransformerDecoderLayer(
    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)

3.1 参数说明

d_model 输入中预期特征的维度(默认=512)
nhead多头attention的head数量(默认为8)
dim_feedforward feedforward层的维度数量(默认为2048)
dropoutdropour值(默认为0.1)
activationencoder和decoder 中间层的激活函数(默认为relu)

3.2 forward 函数 

forward(
    tgt, 
    memory, 
    tgt_mask=None, 
    memory_mask=None, 
    tgt_key_padding_mask=None, 
    memory_key_padding_mask=None)
tgt

喂给decoder的sequence

memory从encoder的最后一层输出的部分
tgt_mask

给tgt sequence的额外的mask

形状:(T,T)

memory_mask 

给encoder的输出的额外的mask

形状:(T,S)

torch.nn.TransformerEncoder

torch.nn.TransformerEncoder(
    encoder_layer, 
    num_layers, 
    norm=None)

 num_layers个encoder_layer组成

4.1 forward函数

forward(src, mask=None, src_key_padding_mask=None)

src

喂给encoder的 sequence

形状:

mask

给src sequence的额外的mask

形状:(S,S)

 

 

5  torch.nn.TransformerDecoder

torch.nn.TransformerDecoder(
    decoder_layer, 
    num_layers, 
    norm=None)

num_layers个decoder_layer组成

5.1 forward 函数

forward(
    tgt, 
    memory, 
    tgt_mask=None, 
    memory_mask=None, 
    tgt_key_padding_mask=None, 
    memory_key_padding_mask=None)
tgt

喂给decoder的sequence

memory从encoder的最后一层输出的部分
tgt_mask

给tgt sequence的额外的mask

形状:(T,T)

memory_mask 

给encoder的输出的额外的mask

形状:(T,S)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐