当前位置: 首页 > wzjs >正文

广州网站开发工程师赛门仕博做网站怎么样

广州网站开发工程师,赛门仕博做网站怎么样,怎么设置域名,wordpress标签使用Decoder Layer 论文地址 https://arxiv.org/pdf/1706.03762 解码器层结构 Transformer解码器层由三种核心组件构成: Masked多头自注意力:关注解码器序列当前位置之前的上下文(因果掩码) Encoder-Decoder多头注意力:关…

Decoder Layer

  • 论文地址

    https://arxiv.org/pdf/1706.03762

解码器层结构

  • Transformer解码器层由三种核心组件构成:

    1. Masked多头自注意力:关注解码器序列当前位置之前的上下文(因果掩码)

    2. Encoder-Decoder多头注意力:关注编码器输出的相关上下文

    3. 前馈神经网络:进行非线性特征变换

      image-20250429162448704

    今天这里实现的是上图中蓝色框中的单层DecoderLayer,不包含 embedding和位置编码,以及最后的Linear和Softmax。

    主要处理流程:

    1. Decoder 的Masked自注意力
    2. Encoder-Decoder自注意力
    3. 前馈神经网络:进行非线性特征变换
    4. 残差连接 + 层归一化
    5. Dropout:最终输出前进行随机失活

数学表达

  • 解码器层计算过程分为三个阶段:

    1. Masked自注意力阶段

    MaskedAtt ( Q , K , V ) = LayerNorm ( MultiHead ( Q , K , V ) + R e s i d u a l ) \text{MaskedAtt}(Q,K,V) = \text{LayerNorm}(\text{MultiHead}(Q,K,V) + Residual) MaskedAtt(Q,K,V)=LayerNorm(MultiHead(Q,K,V)+Residual)

    1. Encoder-Decoder注意力阶段

    CrossAtt ( Q d e c , K e n c , V e n c ) = LayerNorm ( MultiHead ( Q d e c , K e n c , V e n c ) + R e s i d u a l ) \text{CrossAtt}(Q_{dec}, K_{enc}, V_{enc}) = \text{LayerNorm}(\text{MultiHead}(Q_{dec},K_{enc},V_{enc}) + Residual) CrossAtt(Qdec,Kenc,Venc)=LayerNorm(MultiHead(Qdec,Kenc,Venc)+Residual)

    1. 前馈网络阶段

    FFN ( x ) = LayerNorm ( ReLU ( x W 1 + b 1 ) W 2 + b 2 + x ) \text{FFN}(x) = \text{LayerNorm}(\text{ReLU}(xW_1 + b_1)W_2 + b_2 + x) FFN(x)=LayerNorm(ReLU(xW1+b1)W2+b2+x)

    其中:

    1. d_model 为模型维度
    2. Residual 为残差连接
    3. 下标dec来源于Decoder自己的输出,下标enc为Encoder的输出

代码实现

  • 实现单层

    其他层的实现

    层名链接
    PositionEncodinghttps://blog.csdn.net/hbkybkzw/article/details/147431820
    calculate_attentionhttps://blog.csdn.net/hbkybkzw/article/details/147462845
    MultiHeadAttentionhttps://blog.csdn.net/hbkybkzw/article/details/147490387
    FeedForwardhttps://blog.csdn.net/hbkybkzw/article/details/147515883
    LayerNormhttps://blog.csdn.net/hbkybkzw/article/details/147516529
    EncoderLayerhttps://blog.csdn.net/hbkybkzw/article/details/147591824

    下面统一在before.py中导入

  • 实现单层的DecoderLayer

    import torch 
    from torch import nnfrom before import PositionEncoding,calculate_attention,MultiHeadAttention,FeedForward,LayerNormclass DecoderLayer(nn.Module):def __init__(self, n_heads, d_model, ffn_hidden, dropout_prob=0.1):super(DecoderLayer, self).__init__()self.masked_att = MultiHeadAttention(n_heads=n_heads, d_model=d_model, dropout_prob=dropout_prob)self.att = MultiHeadAttention(n_heads=n_heads, d_model=d_model, dropout_prob=dropout_prob)self.norms = nn.ModuleList([LayerNorm(d_model=d_model) for _ in range(3)])  # 三个归一化层self.ffn = FeedForward(d_model=d_model, ffn_hidden=ffn_hidden, dropout_prob=dropout_prob)self.dropout = nn.Dropout(dropout_prob)def forward(self, x, encoder_kv, dst_mask=None, src_dst_mask=None):# 第一阶段:Decoder 的Masked自注意力_x = xmask_att_out = self.masked_att(q=x, k=x, v=x, mask=dst_mask)mask_att_out = self.norms[0](mask_att_out + _x)  # 残差连接后归一化# 第二阶段:Encoder-Decoder注意力_x = mask_att_outatt_out = self.att(q=mask_att_out, k=encoder_kv, v=encoder_kv, mask=src_dst_mask)att_out = self.norms[1](att_out + _x)# 第三阶段:前馈网络_x = att_outffn_out = self.ffn(att_out)ffn_out = self.norms[2](ffn_out + _x)return self.dropout(ffn_out)
    
  • 注意力掩码机制

    掩码类型作用域功能描述
    dst_mask目标序列自注意力防止当前位置关注未来信息(因果掩码)
    src_dst_mask编码器-解码器注意力控制解码器查询对编码器键值对的访问权限
  • 参数说明

    参数名类型说明
    n_headsint注意力头数量
    d_modelint模型隐藏层维度
    ffn_hiddenint前馈网络中间层维度(通常4倍)
    dropout_probfloatDropout概率(默认0.1)

使用示例

  • 测试代码

    if __name__ == "__main__":# 实例化解码器层:8头,512维,前馈层2048,20% dropoutdecoder_layer = DecoderLayer(n_heads=8, d_model=512, ffn_hidden=2048, dropout_prob=0.2)# 模拟输入:batch_size=4,目标序列长度50,编码器输出长度80x = torch.randn(4, 50, 512)encoder_out = torch.randn(4, 80, 512)tgt_mask = Nonesrc_mask = Noneoutput = decoder_layer(x, encoder_out, dst_mask=tgt_mask, src_dst_mask=src_mask)print("输入形状:", x.shape)print("encode_kv 形状:", encoder_out.shape)print("输出形状:", output.shape)
    

http://www.dtcms.com/wzjs/618361.html

相关文章:

  • 免费网站推广网站破解版网站开发制作软件
  • 网站做反向代理后样式加载错误网站广告如何做
  • 做网站写代码怎么样做网站准备的资料
  • 超链接到网站怎么做视频文件下载佛山市建网站做网站费用
  • 教育行业网站推广渠道分析
  • 深圳市中农网是专业农产品营销网站筹划建设智慧海洋门户网站
  • 深圳西乡建网站常熟网站建设公司
  • 杭州设计门户网站国外被动收入网站做的好的
  • 网站备案信息如何注销吗wordpress PHP合并js
  • 怎么给人介绍自己做的网站怎么在jsp网站做验证码
  • 网站建设中的色彩搭配iis网站主目录
  • 建设电影网站需要什么哪个网站是用vue做的
  • 商务网站建设的第一步顺义做网站的厂家
  • 家用网络建网站东方商易网站开发
  • 自己动手建设网站过程网站关键字如何选择
  • 想做网站濮阳网站建设建网站到底需要多少钱
  • 番禺网站建设制作可以做公众号的网站吗
  • 辽宁省和城乡建设厅网站两学一做 网站
  • 科普网站栏目建设方案策划网页站点不安全
  • 泸西县住房和城乡建设局网站免费网站建设找哪家
  • 兰州网站建设慕枫商城网站风格
  • 免费搭建个人博客网站wordpress react 影响
  • 史志网站建设wordpress 敏感词过滤
  • 教育云平台网站建设wordpress插件 数据库
  • 网站建设工种河南住房和城乡建设部网站首页
  • 如何让新网站被收录精品网站欣赏
  • 公司改名网站备案网页设计实训班
  • js 网站怎么做中英文竞价网站与竞价网站之间做友情链接
  • 哪些网站可以做详情页建立手机网站
  • 建设部网站退休注册人员办公室局域网怎么搭建