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

建网站公司要钱吗北京十佳网站建设

建网站公司要钱吗,北京十佳网站建设,农业信息中心网站建设,网络推广培训1对1文章目录 前言一、掩蔽 Softmax 操作1.1 sequence_mask1.2 masked_softmax1.3 测试代码二、加性注意力 (Additive Attention)2.1 实现解析2.2 测试代码三、点积注意力 (Dot Product Attention)3.1 实现解析3.2 测试代码四、可视化注意力权重4.1 可视化点积注意力的权重总结前言…

文章目录

  • 前言
  • 一、掩蔽 Softmax 操作
    • 1.1 sequence_mask
    • 1.2 masked_softmax
    • 1.3 测试代码
  • 二、加性注意力 (Additive Attention)
    • 2.1 实现解析
    • 2.2 测试代码
  • 三、点积注意力 (Dot Product Attention)
    • 3.1 实现解析
    • 3.2 测试代码
  • 四、可视化注意力权重
    • 4.1 可视化点积注意力的权重
  • 总结


前言

在深度学习领域,注意力机制(Attention Mechanism)已经成为许多模型的核心组件,尤其是在自然语言处理(NLP)和计算机视觉任务中。注意力机制的核心思想是通过计算查询(Query)与键(Key)之间的相关性,动态地为值(Value)分配权重,从而聚焦于最重要的信息。本篇博客将通过 PyTorch 代码,深入探讨注意力汇聚(Attention Pooling)的两种常见评分函数:加性注意力(Additive Attention)和点积注意力(Dot Product Attention)。我们将从代码实现入手,逐步解析其原理,并通过可视化工具展示注意力权重的分布。
在这里插入图片描述

本文的目标读者是对深度学习有一定基础、希望通过代码理解注意力机制的实现细节的开发者。所有代码均基于 PyTorch,并在 Jupyter Notebook 中运行和测试。让我们开始吧!


一、掩蔽 Softmax 操作

在注意力机制中,掩蔽 Softmax(Masked Softmax)是一个关键步骤,用于确保模型只关注序列中的有效部分,避免对填充(padding)数据产生影响。我们先来看两个核心函数的实现:sequence_maskmasked_softmax

1.1 sequence_mask

sequence_mask 函数用于在序列中屏蔽不相关的项。它接收输入序列张量 X、有效长度张量 valid_len,并将无效位置替换为指定值(默认值为 0)。

import torch
import torch.nn as nndef sequence_mask(X, valid_len, value=0):"""在序列中屏蔽不相关的项参数:X: 输入序列张量,维度 [batch_size, maxlen]valid_len: 有效长度张量,维度 [batch_size]value: 填充值,标量,默认为0返回:X: 屏蔽后的序列张量,维度 [batch_size, maxlen]Defined in :numref:`sec_seq2seq_decoder`"""# 获取序列的最大长度,维度为标量maxlen = X.size(1)# 创建掩码矩阵# torch.arange(maxlen): 生成 [0, 1, ..., maxlen-1] 的序列,维度 [maxlen]# [None, :] 将其扩展为 [1, maxlen]# valid_len[:, None] 将 [batch_size] 扩展为 [batch_size, 1]# 比较结果 mask 维度为 [batch_size, maxlen]mask = torch.arange((maxlen), dtype=torch.float32,device=X.device)[None, :] < valid_len[:, None]# 使用掩码将 X 中无效位置设为 value# ~mask 为反向掩码,选择需要填充的位置X[~mask] = valuereturn X

这个函数的工作原理是:

  1. 通过 torch.arange(maxlen) 生成一个从 0 到 maxlen-1 的序列,并扩展为与批量大小匹配的形状。
  2. 使用广播机制,将 valid_len 与生成的序列比较,生成布尔掩码 mask
  3. 根据掩码,将无效位置(即超出有效长度的部分)替换为 value

1.2 masked_softmax

masked_softmax 函数在 Softmax 操作中加入掩蔽机制,确保无效位置的注意力权重为 0。

def masked_softmax(X, valid_lens):"""通过在最后一个轴上掩蔽元素来执行softmax操作参数:X: 三维张量 (batch_size, seq_len, feature_dim)valid_lens: 一维张量 (batch_size,) 或二维张量 (batch_size, seq_len),表示有效长度返回:经过masked softmax处理的张量 (batch_size, seq_len, feature_dim)"""if valid_lens is None:# 当没有指定有效长度时,直接执行标准softmaxreturn nn.functional.softmax(X, dim=-1)else:shape = X.shape  # shape: (batch_size, seq_len, feature_dim)if valid_lens.dim() == 1:# 将一维的valid_lens重复扩展到与X的第二维匹配valid_lens = torch.repeat_interleave(valid_lens, shape[1])else:# 将二维的valid_lens展平为一维valid_lens = valid_lens.reshape(-1)# 在最后一轴上对被掩蔽的元素使用非常大的负值替换,使其softmax输出为0X = sequence_mask(X.reshape(-1, shape[-1]), valid_lens,value=-1e6)# 执
http://www.dtcms.com/a/563614.html

相关文章:

  • 网站推广的六种方式小程序开发公司哪家正规
  • 学建站论坛营销策划方案书
  • 淘宝客做网站需要那些条件网络营销中的seo与sem
  • 教育网站开发公司免费营销型网站建设
  • 深圳网站建站公司棋牌游戏网站模板下载安装
  • 请问如何做网站微信朋友圈广告
  • c 做网站怎么发布中国城乡建设部人力网站首页
  • asp 网站模板泉州app网站开发价格
  • 阿里云建站和华为云建站哪个好龙口网站建设公司哪家好
  • 绍兴网站制作建设新乡建设招标投标网站
  • 企业网站建设与管理作业精准营销的概念
  • 专业网站建设明细报价表网站建设飠金手指排名十三
  • 网站建设功能是什么意思濮阳网站建设专家团队
  • 网站默认首页怎么做网站平台教程
  • 最专业的做网站公司网站301重定向代码
  • 做seo网站的公司个人网页设计html完整代码范例
  • 常州网站制作报价沧州网络公司科技
  • 深圳市宝安区网站建设求个网站或者app
  • 网站外链建设布局手机上怎么做链接
  • 影院网站如何做宁波正规站内优化seo
  • 色轮配色网站网络营销方案的制定思路
  • 有关大数据的网站及网址宁波的网络营销服务公司
  • 美声广告网站建设厚街响应式网站设计
  • 如何建立网站教程做游戏直播什么游戏视频网站好
  • 街区网站建设的意义功能型网站
  • 枣庄企业网站建设山东省建设监理协会网站6
  • 南昌网站开发模板上高做网站公司
  • 网网站开发企业免费建站网站
  • 合肥高新城建设计院网站如何建设钓鱼网站
  • 五星花园网站建设兼职比较好用的免费素材网