Tensor 基本操作2 理解 tensor.max 操作,沿着给定的 dim 是什么意思 | PyTorch 深度学习实战

前一篇文章,Tensor 基本操作1 | PyTorch 深度学习实战

本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started

目录

Tensor 基本操作

torch.max

torch.max 实现降维运算,基于指定的 dim 选取子元素的最大值。

默认

复制代码
    a = torch.randn(1, 3)
    print(a)
    b = torch.max(a)
    print(b)

Result:

复制代码
tensor([[-0.5284, -1.5308, -0.2267]])
tensor(-0.2267)

指定维度

指定哪个维度,就是减去第几维:

假如有一个 Tensor Shape 是 AxBxCxD,那么有对应关系

A(dim0),B(dim1),C(dim2),D(dim3)。

假如沿着 dim = 0,则得到矩阵为 BxCxD,其中降维后的 D 中每个值,是 0 维 A 个原始元素最大的值。
假如沿着 dim = 1,则得到矩阵为 AxCxD,其中降维后的 D 中每个值,是 1 维 B 个原始元素最大的值。

复制代码
    a = torch.randn(4, 3, 2, 5)      # 声明 4x3x2x5 的 Tensor
    print(a)
    max, max_indices = torch.max(a, 1) # 沿着第 1 维运算,得到的 max 是一个新的 Tensor, shape(4x2x5)
                                       # 其中,新的 tensor 的第 2 维 有 5 个元素,每个元素是原来第 1 维的 3 个元素的对应位置的最大者
    print(max)
    print(max_indices)

运算过程:

运算的效果,就是将原来第 1 维的 三个 元素通过取最大值的方式消解了,剩下了 4x2x5 的新的 Tensor.

Detail result:

复制代码
tensor([[[[ 1.6156, -0.3533,  0.5970,  1.0218,  0.3952],   # 这是一个 4x3x2x5 的 Tensor
          [ 0.2581, -1.3161,  0.3243, -0.9350,  0.6976]],

         [[-0.6239, -0.8732, -0.2739,  1.3695,  0.9614],
          [ 3.0117, -2.3211,  2.2359, -1.5275,  1.0230]],

         [[ 0.2711, -0.5295, -0.9168, -0.9496, -0.5264],
          [-0.0418,  1.4757, -0.3033, -0.5069, -0.6909]]],


        [[[-0.3262,  1.0079, -0.2975, -0.9859,  1.6166],
          [ 1.2771, -0.0456,  0.1857,  0.3275,  0.4207]],

         [[ 0.2362, -0.0821, -0.0105,  1.7645,  0.0989],
          [-0.1281, -1.0425, -0.5537, -0.0339,  1.3466]],

         [[-1.3060,  1.0920, -0.9126, -0.3850, -0.7273],
          [-0.0519, -0.3566, -0.5489, -3.6990,  0.6110]]],


        [[[ 1.2422, -0.2393,  0.4786,  0.6107, -0.0252],
          [ 0.2563, -0.4030,  1.8649,  0.3462,  0.7197]],

         [[-0.6126,  0.7801, -0.6078,  0.1391, -0.8297],
          [-1.8600, -0.2814,  0.2408, -0.9058, -0.0186]],

         [[ 1.6242,  1.5925, -0.0591, -0.0107, -1.8332],
          [ 0.9812, -3.2381, -1.7055, -1.3484, -1.3409]]],


        [[[-0.3392, -0.4359, -0.0451,  2.4718,  1.9482],
          [ 0.6110, -0.5543,  0.3466,  0.4199, -0.0319]],

         [[-0.2322, -0.8355, -1.0138,  0.9620, -0.4311],
          [-0.7799,  0.8414,  0.9293, -0.0322,  0.1638]],

         [[ 0.6299,  0.7966,  1.8616, -1.8382, -0.1141],
          [ 1.2325, -0.0446, -0.7722,  1.2540, -1.8609]]]])
tensor([[[ 1.6156, -0.3533,  0.5970,  1.3695,  0.9614],     # 取 Max 之后得到的新的 Tensor
         [ 3.0117,  1.4757,  2.2359, -0.5069,  1.0230]],

        [[ 0.2362,  1.0920, -0.0105,  1.7645,  1.6166],
         [ 1.2771, -0.0456,  0.1857,  0.3275,  1.3466]],

        [[ 1.6242,  1.5925,  0.4786,  0.6107, -0.0252],
         [ 0.9812, -0.2814,  1.8649,  0.3462,  0.7197]],

        [[ 0.6299,  0.7966,  1.8616,  2.4718,  1.9482],
         [ 1.2325,  0.8414,  0.9293,  1.2540,  0.1638]]])
tensor([[[0, 0, 0, 1, 1],
         [1, 2, 1, 2, 1]],

        [[1, 2, 1, 1, 0],
         [0, 0, 0, 0, 1]],

        [[2, 2, 0, 0, 0],
         [2, 1, 0, 0, 0]],

        [[2, 2, 2, 0, 0],
         [2, 1, 1, 2, 1]]])
相关推荐
编程牛马姐2 分钟前
并发、多线程和HTTP连接之间有什么关系?
人工智能
羑悻的小杀马特1 小时前
把随身WiFi改成网盘聚合器:中兴F50挂载本地存储+夸克网盘实战
运维·服务器·人工智能·网盘·openlist
meilindehuzi_a1 小时前
从跑分到生产力:重新理解大模型基准测试与分层协作
人工智能
蜜桃味女焊匠人2 小时前
焊接生产线优化思路:解决手工焊、机器人焊气体浪费问题
人工智能·经验分享·其他·机器人
Georgeviewer7 小时前
商业落地评测|实体门店GEO优化性价比与服务体系深度复盘
大数据·人工智能
GuWenyue7 小时前
分不清AI Workflow与Agent?3个实战案例彻底讲透,做AI应用不再踩选型坑
人工智能
彩讯股份3006348 小时前
彩讯股份与心洲科技签署战略合作协议,共建企业级模型后训练能力
人工智能·科技
迅易科技8 小时前
从场景验证到Agent上线:迅易 × WorkBuddy如何帮助企业建设AI能力?
人工智能·ai·腾讯云
PNP Robotics8 小时前
多伦多大学机器人峰会|物理AI与具身智能落地新趋势
人工智能·深度学习·机器学习·机器人
GIR1239 小时前
官方出品 | 多通道土壤呼吸测量系统市场现状与十五五规划深度报告:行业分析+趋势预测全收录
大数据·人工智能·机器学习