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

松岗做网站费用宁夏百度公司

松岗做网站费用,宁夏百度公司,免费英文网站模板,设计摄影作品Encoder Layer 论文地址 https://arxiv.org/pdf/1706.03762 Encoder层介绍 Encoder层是Transformer编码器的核心组件,由多头自注意力和前馈神经网络两个子层构成。每个子层都包含残差连接(Residual Connection)和层归一化(Layer N…

Encoder Layer

  • 论文地址

    https://arxiv.org/pdf/1706.03762

Encoder层介绍

  • Encoder层是Transformer编码器的核心组件,由多头自注意力和前馈神经网络两个子层构成。每个子层都包含残差连接(Residual Connection)和层归一化(Layer Normalization),有效缓解梯度消失问题并加速训练。

    image-20250428170531073

    今天这里实现的是上图中蓝色框中的单层EncoderLayer,不包含 embedding和位置编码

    主要处理流程:

    1. 多头自注意力机制:建立序列内部元素之间的依赖关系
    2. 前馈神经网络:进行非线性特征变换
    3. 残差连接 + 层归一化:在两个子层后各执行一次
    4. Dropout:最终输出前进行随机失活

数学表达

  • 子层处理流程公式化表示:
    LayerOutput = LayerNorm ( x + Sublayer ( x ) ) \text{LayerOutput} = \text{LayerNorm}(x + \text{Sublayer}(x)) LayerOutput=LayerNorm(x+Sublayer(x))

    对于Encoder层具体展开:
    z = LayerNorm ( x + MultiHeadAttention ( x ) ) o u t = LayerNorm ( z + FeedForward ( z ) ) \begin{aligned} z &= \text{LayerNorm}(x + \text{MultiHeadAttention}(x)) \\ out &= \text{LayerNorm}(z + \text{FeedForward}(z)) \end{aligned} zout=LayerNorm(x+MultiHeadAttention(x))=LayerNorm(z+FeedForward(z))


代码实现

  • 其他层的实现

    层名链接
    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

    下面统一在before.py中导入

  • 实现单层的encoder层

    import torch 
    from torch import nnfrom before import PositionEncoding,calculate_attention,MultiHeadAttention,FeedForward,LayerNormclass EncoderLayer(nn.Module):"""Transformer编码器层"""def __init__(self, n_heads, d_model, d_ff, dropout_prob=0.1):super(EncoderLayer, self).__init__()self.self_multi_head_att = MultiHeadAttention(n_heads, d_model, dropout_prob)self.ffn = FeedForward(d_model, d_ff, dropout_prob)self.norm1 = LayerNorm(d_model)self.norm2 = LayerNorm(d_model)self.dropout = nn.Dropout(dropout_prob)def forward(self, x, mask=None):# 自注意力子层_x = x  # 原始输入保存用于残差连接att_out = self.self_multi_head_att(x, x, x, mask)att_out += _x  # 残差连接att_out = self.norm1(att_out)  # 层归一化# 前馈子层_x = att_outffn_out = self.ffn(att_out) ffn_out += _x  # 残差连接ffn_out = self.norm2(ffn_out)  # 层归一化return self.dropout(ffn_out)  # 最终输出
    
  • 维度变化

    处理阶段张量形状示例
    输入数据[batch_size, seq_len, d_model]
    自注意力输出(不改变维度)[batch_size, seq_len, d_model]
    残差连接+层归一化[batch_size, seq_len, d_model]
    前馈网络输出(不改变维度)[batch_size, seq_len, d_model]
    最终输出[batch_size, seq_len, d_model]

使用示例

  • 测试用例

    if __name__ == "__main__":# 模拟输入:batch_size=4, 序列长度100, 维度512x = torch.randn(4, 100, 512)# 实例化编码器层:8头注意力,512维,前馈层2048维,10% dropoutencoder_layer = EncoderLayer(n_heads=8, d_model=512, d_ff=2048, dropout_prob=0.1)# 前向传播out = encoder_layer(x, mask=None)print("Input shape:", x.shape)    # torch.Size([4, 100, 512])print("Output shape:", out.shape) # torch.Size([4, 100, 512])
    

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

相关文章:

  • 做企业网站服务商做网络推广需要多少钱
  • 自己做网站生意怎么样上海知名seo公司
  • 甘肃省城乡城乡建设厅网站大连企业网站建站模板
  • 有没有代做ppt的网站最新热搜榜
  • 甘肃公司网站建设哪家好自动优化句子的软件
  • 常德网站建设求职简历淘宝搜索关键词技巧
  • 个人网站免费域名获取自动化测试培训机构哪个好
  • 建站模板与网站案例展示网络营销策略是什么
  • 不会代码可以做网站吗seo网站编辑优化招聘
  • 一个企业网站的建设流程seo的基本步骤顺序正确的是
  • 网站建设规划方案书游戏推广员拉人技巧
  • 邢台做网站找谁石家庄百度推广排名优化
  • 做订票网站设计要多久国际足联世界排名
  • 0基础做网站多久免费的html网站
  • 曲阳网站建设网站一般怎么推广
  • 用wordpress付费网站html网页制作
  • 做网站公司多少钱企业官网建站
  • 新安网站建设企业如何进行搜索引擎优化
  • 柳州高端网站建设移动网站推广如何优化
  • 国外可以做网站盈利模式有哪些四川餐饮培训学校排名
  • 怎么用dw软件做网站网络营销有本科吗
  • 平顶山股票配资网站建设免费外链网站seo发布
  • 大庆做网站公司保健品的营销及推广方案
  • 徐汇网站建设公司武汉seo系统
  • 太原响应式网站建设企业网站模板下载
  • 深圳宝安医院的网站建设如何拿高权重网站外链进行互换?
  • 城市绿化建设英文网站seo百科大全
  • 网页制作和网站开发实验报告南宁优化网站网络服务
  • html5高端网站建设重庆网站建设与制作
  • 做阿里巴巴怎么进公司网站武汉网站seo推广