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

做任务给钱的网站购买链接平台

做任务给钱的网站,购买链接平台,无锡互联网公司排名,租车做什么网站推广“为什么 PyTorch 的 scaled_dot_product_attention 会输出 NaN?如何正确构造 Attention Mask” 引言:看似正常的 mask,为什么会引发 NaN? 在使用 F.scaled_dot_product_attention 构建跨模态或多源注意力时,我们常通…

“为什么 PyTorch 的 scaled_dot_product_attention 会输出 NaN?如何正确构造 Attention Mask”


引言:看似正常的 mask,为什么会引发 NaN?

在使用 F.scaled_dot_product_attention 构建跨模态或多源注意力时,我们常通过 attention_mask 控制每个 query 位置能看到哪些 key。但如果不小心构造出某些 query 对所有 key 都不可见的情况,就会在 softmax 中触发 NaN,进而让模型 loss 崩溃。

这个问题隐蔽却常见,且 PyTorch 不会自动容错,需要我们显式处理。


问题复现:全 -inf 行将导致 NaN

在 PyTorch 的 scaled attention 中:

output = scaled_dot_product_attention(query, key, value, attn_mask)

其中 attn_maskadditive mask,即:

  • 0.0: 表示该位置可见;
  • -inf: 表示该位置被屏蔽,不可 attend。

当某个 query 行的 mask 全为 -inf 时,softmax 输入类似于:

softmax([-inf, -inf, ..., -inf])[NaN, NaN, ..., NaN]

这将污染整个计算图,最终导致 loss 为 NaN。


产生这种情况的常见原因

这种情况经常发生在任务中存在大量 query(例如图像 patch、token、时间步)本身就不应该 attend 到任何 key,例如背景区域或 padding 区域。

因此,虽然逻辑合理,但仍然在数学上不合法


解决方案:fallback 解锁最后一个 key

为避免 NaN,可在转换 bool mask → float mask 时引入一个 fallback:

# attention_mask: [B, Q, K],bool 类型,True 表示“可以 attend”
attention_mask_float = torch.full_like(attention_mask, float('-inf'), dtype=query.dtype)
attention_mask_float.masked_fill_(attention_mask, 0.0)# fallback:避免某些 query 全为 -inf
all_inf_rows = (attention_mask_float == float('-inf')).all(dim=-1, keepdim=True)  # [B, Q, 1]
if all_inf_rows.any():last_key_idx = attention_mask_float.size(-1) - 1fix_mask = torch.arange(attention_mask_float.size(-1), device=attention_mask.device) == last_key_idxfix_mask = fix_mask.view(1, 1, -1)  # reshape for broadcastattention_mask_float = attention_mask_float.masked_fill(all_inf_rows & fix_mask, 0.0)

这样即便某个 query 原本完全不可见,也能保证 softmax 至少有一个有效分布。


可视化建议

可以使用 matplotlib.imshow 直接可视化 [Q, K] 的 mask 分布:

# 黑色:可见(0.0),白色:被 mask(-inf)
vis_mask = (attn_mask == 0.0).astype(np.uint8)
plt.imshow(vis_mask, cmap='Greys', aspect='auto')

可视化能帮助你快速定位全白 query 行,即潜在 NaN 风险点。


总结

条目建议
是否允许 query 全被屏蔽语义上允许,数学上不合法(需处理)
PyTorch 是否兜底否,需用户自己容错
是否应解锁一个 dummy key是,最安全的 fallback 机制
可否通过可视化排查是,黑白图可快速识别空行


文章转载自:

http://ledtfIb3.Lgwjh.cn
http://1u4aBnCp.Lgwjh.cn
http://g1YKIXQc.Lgwjh.cn
http://uTKEf8Qx.Lgwjh.cn
http://Wkzd95oL.Lgwjh.cn
http://rfehNpJb.Lgwjh.cn
http://6gmJV9rD.Lgwjh.cn
http://iAGwx9IK.Lgwjh.cn
http://OcI09W8J.Lgwjh.cn
http://4wFvSArw.Lgwjh.cn
http://QyuS0uWK.Lgwjh.cn
http://vfnVqLgk.Lgwjh.cn
http://t66oYYw2.Lgwjh.cn
http://0PUZJRFF.Lgwjh.cn
http://2u32k3tu.Lgwjh.cn
http://dKnbF3U4.Lgwjh.cn
http://QU45TarC.Lgwjh.cn
http://vx8VvgOk.Lgwjh.cn
http://Kp595kFl.Lgwjh.cn
http://4RY7r0li.Lgwjh.cn
http://Ne0Vm3c9.Lgwjh.cn
http://il7nH1h4.Lgwjh.cn
http://bur585Zg.Lgwjh.cn
http://fUgOLjrR.Lgwjh.cn
http://dTveI3EQ.Lgwjh.cn
http://uma7LIDq.Lgwjh.cn
http://TNiL79Qu.Lgwjh.cn
http://1pIXJRCv.Lgwjh.cn
http://jVsSXYUb.Lgwjh.cn
http://pFmy248X.Lgwjh.cn
http://www.dtcms.com/wzjs/777438.html

相关文章:

  • 跨境商城网站建设网站建设 外文文献
  • 网站开发与经营如何用wordpress做一个企业网站
  • 企业建网站的 程序做网站基础源代码
  • 凡科网站 怎么开支付厦门php商城网站建设
  • seo优化网站推广专员招聘wordpress批量换网址
  • 东莞网站建设功能天津如何做seo优化服务
  • 国美网站建设的特点网站系统建设开票要开什么
  • 购物网站建设需要注意什么各大网站黑白
  • 法拍重庆网站企业网站设计苏州
  • 企业网站建设实训小结各类网站排名
  • 女性时尚网站源码新浪博客seo
  • 开个捕鱼网站怎么做做本地团购网站怎么样
  • 做电影网站如何寻找资源外贸网站如何建站
  • 购物网站建设新闻企业qq手机版
  • 沅江市建设局网站硬件优化大师
  • 对亚马逊网站做简要分析与评价肇庆网站制作企业
  • 建网站找那家企业好网站域名永久
  • 重庆seo网站系统深圳高端vi设计公司
  • 青岛网站建设公司代理wordpress 头像 删除
  • 手机网站排名优化wordpress主题安装在哪个文件夹
  • 宜春做网站哪里好安徽全过程网站搭建案例
  • 网站页面设计风格打开qq邮箱进入wordpress
  • 请人做网站 我需要知道哪几点做淘宝还是做网站
  • 陕西高速公路建设网站济南定制网站建设公司
  • 网站建设及维护机广告公司管理制度
  • 汨罗做网站做行业网站如何采集信息
  • 汉口网站优化红河州建设局网站
  • 怎么看一个网站是哪个公司做的哪里有门户网站开发
  • 做ppt素材的网站wordpress去掉index.php
  • 抚顺建设银行网站wordpress网站上线