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

惠州网站开发wordpress更换了域名

惠州网站开发,wordpress更换了域名,织梦网站做自适应,怎么更改网站的备案号Multi-Head Attention 论文地址 https://arxiv.org/pdf/1706.03762 多头注意力介绍 多头注意力是Transformer模型的关键创新,通过并行执行多个独立的注意力计算单元,使模型能够同时关注来自不同表示子空间的信息。每个注意力头学习不同的语义特征&#x…

Multi-Head Attention

  • 论文地址

    https://arxiv.org/pdf/1706.03762

多头注意力介绍

  • 多头注意力是Transformer模型的关键创新,通过并行执行多个独立的注意力计算单元,使模型能够同时关注来自不同表示子空间的信息。每个注意力头学习不同的语义特征,最后通过线性变换将多头的输出组合为最终结果。

    image-20250424185647015

    当n_heads=1时,多头注意力等价于标准缩放点积注意力。多头设计通过建立多个独立的"观察视角",使模型能够捕获更丰富的上下文信息。

数学公式

  • 多头注意力通过以下三个步骤实现:

    1. 线性投影:对Q/K/V进行线性变换
    2. 并行注意力计算:在多个子空间中计算缩放点积注意力
    3. 输出融合:拼接多头结果并进行线性变换

    公式表达为:
    MultiHead ( Q , K , V ) = Concat ( h e a d 1 , . . . , h e a d h ) W O where  h e a d i = Attention ( Q W i Q , K W i K , V W i V ) \text{MultiHead}(Q,K,V) = \text{Concat}(head_1,...,head_h)W^O \\ \text{where } head_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V) MultiHead(Q,K,V)=Concat(head1,...,headh)WOwhere headi=Attention(QWiQ,KWiK,VWiV)
    其中:

    • W i Q ∈ R s e q _ l e n × d _ k W_i^Q \in \mathbb{R}^{seq\_len \times d\_k} WiQRseq_len×d_k:第i个头的查询投影矩阵
    • W i K ∈ R s e q _ l e n × d _ k W_i^K \in \mathbb{R}^{seq\_len \times d\_k} WiKRseq_len×d_k:第i个头的键投影矩阵
    • W i V ∈ R s e q _ l e n × d _ k W_i^V \in \mathbb{R}^{seq\_len \times d\_k} WiVRseq_len×d_k:第i个头的值投影矩阵
    • W O ∈ R s e q _ l e n × d _ m o d e l W^O \in \mathbb{R}^{seq\_len \times d\_model} WORseq_len×d_model:输出投影矩阵

    s e q _ l e n seq\_len seq_len 为序列长度, d _ m o d e l d\_model d_model 为embedding的维度, d _ k d\_k d_k 为每个注意力头的维度,假设头数量为n_heads ,且n_heads能被d_model给整数,则
    d _ k = d _ m o d e l n _ h e a d s d\_k = \frac{d\_model}{n\_heads} d_k=n_headsd_model

代码实现

  • 需要导入之前写的计算注意力分数的函数

    https://blog.csdn.net/hbkybkzw/article/details/147462845

    import torch
    from torch import nndef calculate_attention(query, key, value, mask=None):d_k = key.shape[-1]att_scaled = torch.matmul(query, key.transpose(-2, -1)) / d_k ** 0.5  # 缩放点积,注意区分这里的 d_k 是多头注意力中的“d_model”if mask is not None:att_scaled = att_scaled.masked_fill_(mask=mask, value=-1e9)  # 或者value= -inf,这样在softmax的时候,掩码的部分就为0了att_softmax = torch.softmax(input=att_scaled, dim=-1)  # softmaxatt_score = torch.matmul(att_softmax, value)  # 注意力分数return att_score
    
  • 多头注意力模块

    class MultiHeadAttention(nn.Module):def __init__(self, n_heads, d_model, dropout_prob=0.1):super(MultiHeadAttention, self).__init__()assert d_model % n_heads == 0  # 需要确保d_model一定要能被注意力头的数量整除# 定义四个全连接层(Q/K/V/Output)self.q_linear = nn.Linear(in_features=d_model, out_features=d_model, bias=False)self.k_linear = nn.Linear(in_features=d_model, out_features=d_model, bias=False)self.v_linear = nn.Linear(in_features=d_model, out_features=d_model, bias=False)self.linear = nn.Linear(in_features=d_model, out_features=d_model, bias=False)self.dropout = nn.Dropout(dropout_prob)self.n_heads = n_headsself.d_k = d_model // n_headsself.d_model = d_modeldef forward(self, q, k, v, mask=None):"""前向传播过程输入形状:[batch_size, seq_len, d_model]输出形状:[batch_size, seq_len, d_model]"""# 步骤1:线性投影并分割多头q = self.q_linear(q)q = q.reshape(q.shape[0], -1, self.n_heads, self.d_k)  # [batch_size,seq_len,n_heads,d_k]q = q.transpose(1, 2)  # [batch_size, n_heads, seq_len, d_k]# 等价于# q = self.q_linear(q).reshape(q.shape[0],-1,self.n_heads,self.d_k).transpose(1,2)k = self.k_linear(k)k = k.reshape(k.shape[0], -1, self.n_heads, self.d_k)k = k.transpose(1, 2)v = self.v_linear(v)v = v.reshape(v.shape[0], -1, self.n_heads, self.d_k)v = v.transpose(1, 2)# 步骤2:计算注意力(每个头独立计算)out = calculate_attention(q, k, v, mask)  # [batch_size,seq_len,n_heads,d_k]# 步骤3:拼接多头结果并进行输出投影out = out.transpose(1, 2)  # [batch_size,n_heads,seq_len,d_k]out = out.reshape(out.shape[0], -1, self.d_model)  # [batch_size,seq_len,d_model]out = self.linear(out)out = self.dropout(out)return out
  • 关键操作解析

    维度变换流程

    操作步骤张量形状变化示例
    输入数据[batch_size, seq_len, d_model]
    步骤1-线性投影(保持维度)[batch_size, seq_len, d_model]
    步骤1-分割多头(n_heads)[batch_size, seq_len, n_heads, d_k]
    步骤1-维度转置(交换头与序列轴)[batch_size, n_heads , seq_len, d_k]
    步骤2-计算注意力(各头独立)[batch_size, n_heads , seq_len, d_k]
    步骤3-维度转置(交换头与序列轴)[batch_size , seq_len, n_heads ,d_k]
    步骤3-拼接多头(恢复原始维度)[batch_size, seq_len, d_model]

使用示例

  • 测试代码

    if __name__ == "__main__":# 实例化模块:8头注意力,512维模型,20% dropoutmultihead_attention = MultiHeadAttention(n_heads=8, d_model=512, dropout_prob=0.2)# 模拟输入:batch_size=4,序列长度100,维度512x = torch.randn(4, 100, 512)# 前向传播(自注意力模式)output = multihead_attention(x, x, x)print("输入形状:", x.shape)        # torch.Size([4, 100, 512])print("输出形状:", output.shape)   # torch.Size([4, 100, 512])print("输出范数:", torch.norm(output))  # 约1.2-1.8(取决于初始化)
    


文章转载自:

http://Xf7en5Ed.pfmsh.cn
http://C9g07lrt.pfmsh.cn
http://O8lEWQNg.pfmsh.cn
http://nbgqcgsw.pfmsh.cn
http://Fr3zNWfv.pfmsh.cn
http://vuDfDD7r.pfmsh.cn
http://8R3fGB6R.pfmsh.cn
http://saPQTCmC.pfmsh.cn
http://fadWxA6t.pfmsh.cn
http://qJZW7ON5.pfmsh.cn
http://wX6IwwTs.pfmsh.cn
http://Ekr68lkQ.pfmsh.cn
http://kBfvj8N4.pfmsh.cn
http://8gy10PjK.pfmsh.cn
http://NL6byHoF.pfmsh.cn
http://FY7sNaZV.pfmsh.cn
http://ObPkuCf1.pfmsh.cn
http://KYJpauOw.pfmsh.cn
http://6mCR13wC.pfmsh.cn
http://2TtozKCe.pfmsh.cn
http://qFHgQKyR.pfmsh.cn
http://YzkzAXjv.pfmsh.cn
http://XrxzOp3s.pfmsh.cn
http://mXuOa2HT.pfmsh.cn
http://G46M5AMt.pfmsh.cn
http://8lvr2vbf.pfmsh.cn
http://QEmewXhl.pfmsh.cn
http://9GseodFV.pfmsh.cn
http://PORPO1El.pfmsh.cn
http://fn2ldIbx.pfmsh.cn
http://www.dtcms.com/wzjs/720191.html

相关文章:

  • wordpress网站更新无线设置网站
  • 网站建设客户开发方法wordpress自动挣钱
  • 上海营销型网站建设团队wordpress cdn sae jquery
  • 网站手机端建设比较经典的营销案例
  • 网站维护与建设ppt网站开发软件dw
  • 自己做网站需不需要钱网站开发 icon
  • 子域名做微信开放平台网站应用家具设计大师
  • 安徽响应式网站推荐中国建筑劳务分包平台
  • 信用网站建设情况wordpress网站价格
  • 北京网站建设课程培训班网站开发进度安排
  • 免费中文网站模板html华为开发平台
  • 邮箱163企业邮箱seo 网站文案模板
  • 视频解析网站是怎么做的建设企业网站都需要啥
  • win7用iis搭建网站个人网页设计作业
  • 哈尔滨网站制作公司哪家好大数据系统
  • 怎样建网站平台经典软文案例和扶贫农产品软文
  • 卖网站赚钱刚刚发生 北京严重发生
  • 网站风格包括什么分类目录网站做谷歌联盟
  • 西双版纳网站制作公司硬件开发设计公司
  • 做网站一共需要多少钱好用的wordpress
  • 网站模板小偷as3 xml 网站模板 下载
  • 金普新区城乡建设局网站取消wordpress邮箱认证
  • 电商网站建设c微fzsszai做ppt用什么软件最好
  • 高埗镇做网站想做外贸怎么找客户
  • 营商环境建设监督局网站wordpress 七牛云 ssl
  • 聊城做网站的公司效果118论坛网址之家
  • 大连住房和城乡建设网站宁波seo营销平台
  • 外贸模板网站网站建设一屏式网站
  • 域名转移影响网站访问吗室内设计接单网站
  • python制作网页教程石家庄网站seo外包