# transformer模型中数据维度的变化 # 1.批量输入句子[bs, seq_length]句子长度 # 2.经过input_embedding变为[bs,seq_length, d_model] 查询词库表(vocab_size * embedding_size) # 3.经过positional encoding torch.sin(pos/(10000**(_2i/d_model))) pos [seq_length, 1], -2i [d_model/2] 返回二维矩阵,[seq_length, d_model] 其中seq_length是句子中max_len, # 对于每个句子[seq_length, d_model]+pe矩阵[seq_length, d_model] 最终还是[bs, seq_length, d_model] # 4.经过multi head self-attention其中w矩阵的维度是[d_model,d_model] # 多头注意力机制中输入为[bs, seq_length, d_model]被8个头平分后[bs, seq_length, h, d_model//h],为了将每个头的信息放在一起,[bs,h, seq_length, d_model//h] # 其中q*k_T = [bs, h, seq_len, seq_len] * v = [bs, h, seq_len, d_model//h],再将h和seq_len转置合并[bs,seq_len, d_model] # 5.将输出的kv送入decoder的中间层
Transformer中数据shape的变化
最新推荐文章于 2024-12-24 14:17:02 发布