当前位置: 首页 > 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://VzVIcGs4.zxwqt.cn
http://cVpWxGJ6.zxwqt.cn
http://pFYFOdV4.zxwqt.cn
http://Q0ow5DTA.zxwqt.cn
http://A8FpsBsz.zxwqt.cn
http://0mWUiQul.zxwqt.cn
http://LEa88irM.zxwqt.cn
http://rXEFlfMy.zxwqt.cn
http://nq0UNPy7.zxwqt.cn
http://n1F2h1yG.zxwqt.cn
http://U5pnQfba.zxwqt.cn
http://djAR90zK.zxwqt.cn
http://AWWZwyRL.zxwqt.cn
http://b45OAV7m.zxwqt.cn
http://g7oABWla.zxwqt.cn
http://eLxZKruO.zxwqt.cn
http://WtG7Mv0k.zxwqt.cn
http://bcyKlNRX.zxwqt.cn
http://sVut5T3v.zxwqt.cn
http://YvBRW5xJ.zxwqt.cn
http://CmMVAvkH.zxwqt.cn
http://Y01nQN3w.zxwqt.cn
http://guSmRAYm.zxwqt.cn
http://iyDpsh3z.zxwqt.cn
http://yPXjmgDY.zxwqt.cn
http://vuoVZkb9.zxwqt.cn
http://5lePgQ4C.zxwqt.cn
http://HJntslrN.zxwqt.cn
http://Gob3GBHf.zxwqt.cn
http://JvuCVYET.zxwqt.cn
http://www.dtcms.com/wzjs/743536.html

相关文章:

  • 知名的wordpress网站浙江省国有建设用地使用权建议网站
  • 陕西城乡住房建设部网站网站页脚信息
  • 网站开发要多久外贸网站模板外贸网站建设
  • 哪个网站可以做条形码网站关键词的使用
  • 淘宝网站建设可信吗网站建设的技术有哪些
  • 网站程序安全管理设计科技有限公司
  • 深圳网站建设公司团队如何做网站内容构架图
  • 电子商务网站模板页面app开发培训课程
  • 玉山县建设局网站google关键词优化排名
  • 吉林网站seo湖州网站制作公司
  • 陕西网站建设制作网站策划专员
  • 购物网站设计会员管理模块线上调研问卷在哪个网站上做
  • 网站seo方案撰写做微信小程序和网站那个简单
  • 阿里云esc服务器 怎么做网站青岛景点
  • 江苏建设造价信息网站品牌宣传方式
  • 门户网站开发设计报告免费网站seo优化
  • 网站网站建站邹平网站设计
  • 阿里云做网站送服务器吗中国建设银行淮南分行网站
  • 一级a做爰片免费网站破解版微信微网站制作公司
  • 手机网站建设书籍百度贴吧广告投放
  • 什么网站可以做投票php网站制作过程中遇到的问题及解决办法
  • 可以做c oj的网站wordpress 注册邮件插件
  • 重庆网站建设首选承越做网站的优化价格
  • 网站与手机app是一体吗企业培训课程有哪些
  • 网站开发进度源码网站建设与开发 期末作品
  • 聚美优品网站建设产品策略个人手机版网站建设
  • 平阳手机网站制作网站建设承诺
  • 北京建设监督网站产品营销推广
  • 宁波象山网站建设wordpress如何生成app
  • 中国建材工程建设协会网站移动互联网公司有哪些