pytorch小记(三):pytorch中的最大值操作:x.max()

pytorch小记(三):pytorch中的最大值操作:x.max()


在 PyTorch 中,x.max(dim=n) 表示沿指定维度 dim 求张量的最大值,并返回 最大值最大值的索引 。我们逐步分析 dim=0, dim=1, 和 dim=2 的行为。


初始化张量:

python 复制代码
x = torch.arange(8).reshape(2, 2, 2)
print(x)

输出

复制代码
tensor([[[0, 1],
         [2, 3]],
        [[4, 5],
         [6, 7]]])
  • x 是一个 3D 张量,形状为 (2, 2, 2)
    • 第一维度(dim=0)有 2 个块。
    • 第二维度(dim=1)有 2 行。
    • 第三维度(dim=2)有 2 列。

1. x.max(dim=0)

含义

  • 沿着第 0 维(块的方向)比较,保留 其他维度
  • 比较时,将每个位置的两个块中元素逐个比较,选出最大值。

计算过程

复制代码
[[0, 1],    [2, 3]]         # 块 0
  |  |       |  |
[[4, 5],    [6, 7]]         # 块 1

我们沿第 0 维比较,即逐个元素比较块 0 和块 1 对应位置的值,得到最大值:

对比每个位置的值:
  • 对位置 [0, 0] 比较:

    复制代码
    块 0: 0, 块 1: 4 => 最大值是 4
  • 对位置 [0, 1] 比较:

    复制代码
    块 0: 1, 块 1: 5 => 最大值是 5
  • 对位置 [1, 0] 比较:

    复制代码
    块 0: 2, 块 1: 6 => 最大值是 6
  • 对位置 [1, 1] 比较:

    复制代码
    块 0: 3, 块 1: 7 => 最大值是 7
合并最大值:

将每个位置的最大值整合成新的张量:

复制代码
[[4, 5],
 [6, 7]]

输出

python 复制代码
Max: torch.return_types.max(
       values=tensor([[4, 5],
                      [6, 7]]),
       indices=tensor([[1, 1],
                       [1, 1]]))
  • 最大值为 tensor([[4, 5], [6, 7]]),形状为 (2, 2)
  • 索引为 tensor([[1, 1], [1, 1]]),表示在第 0 维中,每个位置最大值来自第 1 块(索引 1)。

2. x.max(dim=1)

含义

  • 沿着第 1 维(行的方向)比较,保留 其他维度
  • 比较时,将每个块中的两行逐个比较,选出最大值。

计算过程

复制代码
块 0:
[[0, 1],        =>  [2, 3]
 [2, 3]]
块 1:
[[4, 5],        =>  [6, 7]
 [6, 7]]

输出

python 复制代码
Max: torch.return_types.max(
       values=tensor([[2, 3],
                      [6, 7]]),
       indices=tensor([[1, 1],
                       [1, 1]]))
  • 最大值为 tensor([[2, 3], [6, 7]]),形状为 (2, 2)
  • 索引为 tensor([[1, 1], [1, 1]]),表示在第 1 维中,每个位置最大值来自第 1 行(索引 1)。

3. x.max(dim=2)

含义

  • 沿着第 2 维(列的方向)比较,保留 其他维度
  • 比较时,将每行中的两列逐个比较,选出最大值。

计算过程

复制代码
块 0:
[0, 1],        =>  [1]
[2, 3],        =>  [3]
块 1:
[4, 5],        =>  [5]
[6, 7]         =>  [7]

输出

python 复制代码
Max: torch.return_types.max(
       values=tensor([[1, 3],
                      [5, 7]]),
       indices=tensor([[1, 1],
                       [1, 1]]))
  • 最大值为 tensor([[1, 3], [5, 7]]),形状为 (2, 2)
  • 索引为 tensor([[1, 1], [1, 1]]),表示在第 2 维中,每个位置最大值来自第 1 列(索引 1)。

总结

  • dim=0 :在 块的方向 比较,结果保留每个位置的 行和列
  • dim=1 :在 行的方向 比较,结果保留每个位置的 块和列
  • dim=2 :在 列的方向 比较,结果保留每个位置的 块和行

图示化总结:

复制代码
dim=0:  [[0, 1],       [[4, 5],         =>  [[4, 5],
         [2, 3]]        [6, 7]]             [6, 7]]

dim=1:  [[0, 1],       [[2, 3],         =>  [[2, 3],
         [2, 3]]        [6, 7]]             [6, 7]]

dim=2:  [[0, 1],       [[1],            =>  [[1, 3],
         [2, 3]]        [3]]                 [5, 7]]
相关推荐
学习中.........2 分钟前
从 Karpathy 手写 BPE 到 CS336 `train_bpe` 作业实现
人工智能·机器学习·语言模型·自然语言处理
无忧智库2 分钟前
产业数字化平台建设方案:从单点工厂改造到城市产业生态的全景落地指南(PPT)
大数据·人工智能
草莓熊Lotso4 分钟前
【LangChain】核心组件详解:文档加载器(Document Loaders)
开发语言·c++·python·langchain·软件工程
wuhanzhanhui6 分钟前
轻盈的力量:2026 武汉国际发泡材料技术工业展览会,重构未来工业的“呼吸感”
大数据·人工智能
Ai_easygo6 分钟前
多Agent数据分析报告自动化实战:用CrewAI组支AI团队,丢份数据就出报告(从架构到评估)
人工智能·数据分析·自动化
集芯微电科技有限公司9 分钟前
替代LM4890音频功率放大器低电磁干扰辐射
人工智能·单片机·嵌入式硬件·生成对抗网络·计算机外设
开开心心就好14 分钟前
Word双击预览图片插件弥补Word功能缺失
人工智能·python·智能手机·ocr·电脑·word·音视频
战场小包16 分钟前
世界杯结束了,我用 AI 造了平行宇宙,这次结局你写
前端·人工智能·ai编程
冻感糕人~19 分钟前
大模型学习指南:收藏这份AI Agent四层工程地图(小白程序员必备)
java·大数据·人工智能·学习·大模型·agent·大模型学习
问商十三载20 分钟前
2026工业制造AI引擎生成式优化怎么做?3层适配法避通用坑,零成本提31%抓取权重附校验清单
大数据·人工智能·制造