【Transformer】学习过程记录

文章详细解读了Transformer算法的结构,从论文《AttentionIsAllYouNeed》出发,结合GitHub上的demo代码,解析了输入、输出以及模型中数据形状的变化。输入为长度15的整数列表,表示15个字符的句子,输出则略去了首字符。该示例程序旨在通过Transformer模型进行序列生成任务,即预测给定输入序列的后续部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文来源:Attention Is All You Need
程序源码来源:github中的demo

算法结构

  根据论文的给出的图片,我们不难模仿着画出算法的简要结构。

  对于更加细致的各个模块功能以及上面给出demo的数据在模型中shape的变化过程,还可以看下面这张图:

代码解读

  拿到这个demo后,首先确定一下这个程序的输入是什么,输出是什么,要解决的是什么问题。

  通过一步步的debug代码调试,不难发现,输入是[2, 3, 4, 5, 2, 4, 9, 7, 6, 10, 5]这样的整数列表。而且这里的列表长度默认是15(训练数据encoder输入是15,decoder输入是14),列表中的值位于[2, 11)之间。这里的范围与长度都是有一定的意义的,我们把每一个列表看成一个句子,每个整数值当作一个字,则这里15表示一个句子的长度为15,而11的限制暗示这些句子中会有11种不同的字。
  这个demo程序的任务就是要通过[2, 3, 4, 5, 2, 4, 9, 7, 6, 10, 5]这样的输入,推出[ 3, 4, 5, 2, 4, 9, 7, 6, 10, 5]这样的输出,更直观的来说就是略去最开头的字符。输入数据shape(15),而输出数据shape(14)。

参考博客与网络资源:
[1]: Transformer代码完全解读(附有可实验的完整训练推理程序)
[2]: Transformer算法完全解读
[3]: NLP基础知识点:BLEU(及Python代码实现)
[4]: 十分钟读懂Beam Search 1:基础

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值