You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对除第一维度外的所有维度应用torch.all计算准确率?

多维度适配的全匹配准确率计算

要实现对除第一批次维度外所有维度的全匹配判断,无需针对不同维度数写不同代码,直接通过动态生成维度索引即可:

# 计算每个样本是否完全匹配
matches = (outputs.round() == targets).all(dim=tuple(range(1, outputs.ndim)))
# 计算准确率
accuracy = matches.sum().item() / outputs.shape[0]

原理说明

  • outputs.ndim 获取张量的总维度数,比如形状为 NxAxB 时返回3,NxA 时返回2
  • range(1, outputs.ndim) 生成从第1维(跳过批次维度)到最后一维的索引序列
  • 将索引序列转为元组传给 .all() 的 dim 参数,方法会自动在这些维度上依次执行全匹配判断,最终得到每个样本的匹配结果(形状为 (N,) 的布尔张量)

这种写法兼容任意大于1维的输入形状(只要outputs和targets维度一致),不用根据输出维度手动调整dim参数。

内容的提问来源于stack exchange,提问作者mxcx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 00:37:02