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

如何获取torch.mode的输出索引?为何索引全为20?

关于torch.mode返回indices全为20的疑问解析

执行torch.mode(b, 0)后得到的indices结果全为20,以下是代码示例、官方文档说明及原因解析:

代码示例

>>> b
tensor([[ 6,  7, 12,  7,  8],
        [ 0,  1,  6,  1,  2],
        [ 0,  1,  6,  1,  2],
        [ 2,  3,  8,  3,  4],
        [ 2,  3,  8,  3,  4],
        [ 2,  3,  8,  3,  4],
        [10, 11, 16, 11, 12],
        [-1,  0,  5,  0,  1],
        [-2, -1,  4, -1,  0],
        [ 2,  3,  8,  3,  4],
        [ 1,  2,  7,  2,  3],
        [ 1,  2,  7,  2,  3],
        [ 2,  3,  8,  3,  4],
        [ 5,  6, 11,  6,  7],
        [-2, -1,  4, -1,  0],
        [-3, -2,  3, -2, -1],
        [-5, -4,  1, -4, -3],
        [ 1,  2,  7,  2,  3],
        [12, 13, 18, 13, 14],
        [-3, -2,  3, -2, -1],
        [ 2,  3,  8,  3,  4],
        [ 3,  4,  9,  4,  5],
        [10, 11, 16, 11, 12],
        [-6, -5,  0, -5, -4],
        [ 9, 10, 15, 10, 11],
        [12, 13, 18, 13, 14],
        [-3, -2,  3, -2, -1],
        [-2, -1,  4, -1,  0],
        [-4, -3,  2, -3, -2],
        [-1,  0,  5,  0,  1],
        [ 2,  3,  8,  3,  4],
        [ 4,  5, 10,  5,  6],
        [-1,  0,  5,  0,  1],
        [ 5,  6, 11,  6,  7],
        [ 7,  8, 13,  8,  9],
        [ 3,  4,  9,  4,  5],
        [ 2,  3,  8,  3,  4],
        [ 4,  5, 10,  5,  6],
        [-4, -3,  2, -3, -2],
        [ 2,  3,  8,  3,  4],
        [-1,  0,  5,  0,  1],
        [ 2,  3,  8,  3,  4],
        [ 4,  5, 10,  5,  6],
        [ 9, 10, 15, 10, 11],
        [-1,  0,  5,  0,  1],
        [-4, -3,  2, -3, -2],
        [ 0,  1,  6,  1,  2],
        [ 4,  5, 10,  5,  6],
        [ 6,  7, 12,  7,  8],
        [-2, -1,  4, -1,  0]])
>>> torch.mode(b, 0)
torch.return_types.mode(
values=tensor([2, 3, 8, 3, 4]),
indices=tensor([20, 20, 20, 20, 20]))

torch.mode官方文档(中文翻译)

torch.mode(input, dim=-1, keepdim=False, *, out=None)
返回一个命名元组(values, indices):

  • values:输入张量在指定维度dim上的众数
  • indices:众数在原张量对应维度上的索引位置
    默认dim为张量的最后一维。若keepdim设为True,输出张量除dim维度大小为1外,其余尺寸与输入一致;否则dim维度会被压缩,输出张量的维度比输入少1。

原因解析

这是PyTorch中torch.mode的正常行为:当某个维度上的众数存在多个出现位置时,函数会返回最后一次出现该众数的索引。

观察张量b:

  • 第20行(索引从0开始)的元素是[2, 3, 8, 3, 4]
  • 对每一列统计众数:
    • 第0列:数字2出现次数最多(共10次),最后一次出现在第20行
    • 第1列:数字3出现次数最多,最后一次出现在第20行
    • 第2列:数字8出现次数最多,最后一次出现在第20行
    • 第3列:数字3出现次数最多,最后一次出现在第20行
    • 第4列:数字4出现次数最多,最后一次出现在第20行

因此所有列的indices都返回20,完全符合torch.mode的设计逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:01:25