pytorch 笔记: nn.Transformer

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)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值