49、自注意力机制与Transformer编码器详解

自注意力机制与Transformer编码器详解

1. 前馈子层

编码器层的最后一部分是一个前馈网络,它包含两个线性模块,中间使用ReLU函数(即 $max(x, 0)$ )。其公式如下:
$FFN(X’) = max(X’W_1 + b_1, 0)W_2 + b_2$
与注意力机制类似,我们会应用层归一化:
$LayerNormalization(X’ + FFN(X’))$
其中,$W_1$ 的大小是 $d_{model} \times d_{ff}$,$W_2$ 的大小是 $d_{ff} \times d_{model}$。

2. 编码器层

编码器由N个相同的层堆叠而成,每层由多头注意力和前馈网络组成。以下是编码器层的实现代码:

import torch
import torch.nn as nn

class TransformerEncoderLayer(nn.Module):
    def __init__(self, d_model, nhead, d_ff=2048):
        super().__init__()
        self.multihead_attn = nn.MultiheadAttention(d_model, nhead)
        self.layer_norm_1 = nn.LayerNorm(d_model)
        self.W1 = nn.Linear(d_model, d_ff)
        self.relu = nn.ReLU()
        self.W2 = nn.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值