我正试图从零开始实施一个变压器网络来理解它。我正在使用图示变压器作为指导。我被困的部分是关于如何从最终解码层的输出到线性+ softmax。
据我所知,如果我们有一批B,max输出seq长度M,嵌入维数D和声标大小V,那么最后一个解码器层的输出将是BxMxD,我们必须将它转化为BxV大小概率的向量,这样我们就可以应用softmax并得到下一个预测词。但是,我们如何从变大小的MxD矩阵到一个固定长度的V向量呢?
这个职位说,我们将线性层依次应用于所有M向量:
事情就是这样。它不会被压平成一个向量。线性变换分别应用于序列中的所有M向量。这些向量有一个固定的维数,这就是它工作的原因。
但是,我们如何将这些转化的向量合并成一个向量呢?我们把它们加起来吗?
发布于 2021-07-08 18:05:18
你的理解不对。
从B \times M \times D张量到B \times M \times V张量(即逻辑)。正如你所看到的,在最后的张量中,我们有维数V的M向量(每个令牌有一个向量),而不仅仅是一个向量。
要获得B \times M \times V,只需执行矩阵乘法。
这适用于变压器,但也适用于大多数序列生成模型,如LSTM。
https://datascience.stackexchange.com/questions/97628
复制相似问题