赞
踩
1.下面这整个属于一个样本。所以batch_size = 1
2.
3.
4.
为了加快模型的处理速度,我们在训练的时候,一般都会把batch_size设置为大于1的数,但又会引入一个问题,当我们同时处理几个句子时(这里我们把矩阵的一行看做一个句子,而且有多少行,batch_size就设置为几。)有些句子的长度是不一样的,所以我们这里人为设定了一个最大长度。当句子的长度超过最大长度时,我们就需要把超过长度的字删去。此时有些句子的长度是小于最大长度的,而一个矩阵需要把它的所有位置都有值时才能计算,所以我们需要把没有值的地方进行填充。此时我们人为设定了一个值为p。
5.
6.
7.
8.
9.
pe = torch.zeros(max_len, d_model)
10.
position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)
position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)
12.
position = torch.arange(0, max_len, dtype=torch.float).unsqueeze(1)
div_term = torch.exp(torch.arange(0, d_model, 2).float() * (-math.log(10000.0) / d_model))
pe[:, 0::2] = torch.sin(position * div_term)## 这里需要注意的是pe[:, 0::2]这个用法,就是从0开始到最后面,补长为2,其实代表的就是偶数位置
pe[:, 1::2] = torch.cos(position * div_term)##这里需要注意的是pe[:, 1::2]这个用法,就是从1开始到最后面,补长为2,其实代表的就是奇数位置
## 上面代码获取之后得到的pe:[max_len*d_model]
14.
16.
每一字都是512维度,一共是12个字
17.
pos指的是单词的位置,提问:这儿的位置是指在原句子中的位置吗?
18.
下面的整个作为transformer的输入
19.
下面的QKV属于三个矩阵
20.
21.
所谓的embedding意思就是单词的向量表示
22.
这里的score和李宏毅的有点不同
这儿的dk是多少呢?(dk=64)
这个是得到score之后,再进行除以根号下dk,最后再进行softmax
23.
每一个单词用矩阵的一行来表示
24.
从这里可以看出,多头注意力机制的Wq,Wk,Wv是不一样的,这样设计应该是可以得到不同尺度的特征。
25.
26.
两个全连接,每个全连接有两层。
27.
S表示输入的开始
E表示结束
28.
编码端的输入是需要训练的输入
解码端的输入是标签的输入,因为要训练,需要把最终的预测结果相比较,比较之后再计算损失函数,最后通过损失函数更新权重
30.
31.
P代表填充字符
32.
代码中的batch_size表示的是几组句子,下面表示4组句子。
33.
代码中的max_len表示一个句子的最大长度,当句子的最大长度超过max_len就把超过的部分截掉,如果没有max_len这么长,就需要使用特殊字符P来填充。
在代码中把p设置成了负无穷,这样可以让p不去影响其他字符
34.
全连接层映射的维度
35.
下面这个矩阵是输入的词表矩阵,行时代码有多少个词,列表示,一个词用多少维度去表示。
36.
上图中的1二维列表就是下面这个二维列表
下面的图片中二维列表就是2中所表示的形状
词向量和位置参数相加
38.
get_attn_pad_mask函数将会得到如下图所示的符号矩阵。
40.
这儿圈出来的部分就是把输入的单词转换成词向量的矩阵形式,并且复制了三份,分别和Wk,Wq,Wv相乘,获得去,q,k,v
那既然这儿的三个输入矩阵都是相同的,为什么不输入一个矩阵,而是输入相同的三个矩阵呢?(因为在解码端还有一个交互注意力层,它的q矩阵来自解码端,k,v矩阵来自编码端,来源并不相同。所以我们进行三个输入,并且三个输入是相同的。)
这里被分成了8个头,每个头的维度是d_k维度
都是分头
这个都是写的d_k,不是写错了,是因为q,k的维度要相同,后面才能够相乘,不然后面无法相乘。
43.
下面的代码是在实现下面这个公式。
44.
把attn_mask里面的pad值置为无穷小,这样经过softmax的时候就不会对其他单词产生影响。
45.
每一个横行做softmax
然后再乘以对应的V矩阵
46.
47.
解码层堆叠n个
48.
告诉解码端那些是pad符号
49.
找到那些是位置是被pad的
50.
下面图:输入S的时候,它只能看见S,它看不见卷起来。输入卷的时候,它能看见S卷,它看不见起来。
51.
53.
1.0
下面就是encoder to decoder 的总体框架图
2.0
3.0
4.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。