Transformer代码架构


transformer模型调用时,EncoderDecoder()共含有5个参数,分别为:
【encoder】【decoder】【input embeddings + position】【output embeddings + position】【generator】

EncoderDecoder(encoder, decoder, src_embed, tgt_embed, generator)
model = EncoderDecoder(
    Encoder(EncoderLayer(d_model, c(attn), c(ff), dropout), N),
    Decoder(DecoderLayer(d_model, c(attn), c(attn), c(ff), dropout), N),
    nn.Sequential(Embeddings(d_model, src_vocab), c(position)),
    nn.Sequential(Embeddings(d_model, tgt_vocab), c(position)),
    Generator(d_model, tgt_vocab)
    )

encoder: Encoder(layer, N)

N为层数,该层共调用几次

Encoder(EncoderLayer(d_model, c(attn), c(ff), dropout), N)

layer: EncoderLayer(size, self_attn, feed_forward, dropout)

EncoderLayer(d_model, c(attn), c(ff), dropout)

d_model: 特征的维度(一个单词共有多少个特征)
c(): deepcopy
attn: MultiHeadedAttention(h, d_model) 
ff: PositionwiseFeedForward(d_model, d_ff, dropout)

decoder: Encoder(layer, N)

Decoder(DecoderLayer(d_model, c(attn), c(attn), c(ff), dropout), N)

layer: DecoderLayer(size, self_attn, src_attn, feed_forward, dropout)

DecoderLayer(d_model, c(attn), c(attn), c(ff), dropout)

d_model: 特征的维度(一个单词共有多少个特征)
c(): deepcopy
attn: MultiHeadedAttention(h, d_model) 
ff: PositionwiseFeedForward(d_model, d_ff, dropout)

input embedding + positional encoding

nn.Sequential(Embeddings(d_model, src_vocab), c(position))

Embeddings(d_model, src_vocab)

Embeddings(d_model, vocab)

d_model: 特征的维度(一个单词共有多少个特征)
vocab: 字典有多少个单词

Positional Encoding

PositionalEncoding(d_model, dropout, max_len)

output embedding + positional encoding

nn.Sequential(Embeddings(d_model, src_vocab), c(position))

Embeddings(d_model, src_vocab)

Embeddings(d_model, vocab)

d_model: 特征的维度(一个单词共有多少个特征)
vocab: 字典有多少个单词

Positional Encoding

PositionalEncoding(d_model, dropout, max_len)

generator(linear + softmax)

Generator(d_model, vocab)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值