transformer维度变化,图中直观表现
- Transformer分为两阶段:训练,推理:
- 训练阶段:
- Encoder部分:
- Decoder部分:
- 推理阶段:
- 训练阶段图片
- 推理阶段图片
Transformer分为两阶段:训练,推理:
训练阶段:
Encoder部分:
输入维度为 [batch_size, seq_len],经过embedding之后纬度变为:
[batch_size, seq_len, hidden_size],加上一样维度的position_embedding,使得进入多头注意力的维度为 [batch_size, seq_len, hidden_size] ,经过三个W,Wq,Wk,Wv,得到q, k, v矩阵,由于是多头,在每个头中的维度为
[batch_size, seq_len, hidden_size / 8] ,多头注意力的输出维度也和输入一样,然后进入FFN,首先经过升维线性层:[batch_size, seq_len, high],经过ReLU激活函数,维度不变,第三步经过降维线性层,维度与输入FFN的维度对齐:
[batch_size, seq_len, hidden_size],
Decoder部分:
推理阶段:
训练阶段图片
链接: link.
图片: