pytorch张量列表索引和多维度张量索引比较

pytorch张量的高级索引取值原理解读

代码:

复制代码
import torch
x = torch.tensor([[10, 20, 30], [40, 50, 60]])
x1 = x[[[0, 1], [1, 0]]]
x2 = x[torch.tensor([[0, 1], [1, 0]])]
print(f"x1:{x1}")
print(f"x2:{x2}")

输出:

复制代码
x1:tensor([20, 40])
x2:tensor([[[10, 20, 30],
         [40, 50, 60]],

        [[40, 50, 60],
         [10, 20, 30]]])

代码解读:

**张量 x**是一个 2x3 的张量:

x1 的取值

复制代码
x1 = x[[[0, 1], [1, 0]]]
  • 索引机制 : 这里的索引 [[0, 1], [1, 0]] 是 高级整数索引。

    • 它取的是第 1 维的具体位置。
  • 步骤:

    • x[[0, 1], [1, 0]] 等价于以下操作:
      • x[0, 1] -> 20
      • x[1, 0] -> 40

因此:

复制代码
x1 = [20, 40]

注:x\[\[0, 1, 1, 0]] 结果同 x\[0, 1, 1, 0]

x2 的取值

复制代码
x2 = x[torch.tensor([[0, 1], [1, 0]])]

### 复杂索引,在0维和1维度都取
#x3 = x[torch.tensor([[0, 1], [1, 0]]),torch.tensor([[0, 1], [1, 0]])]
#print(f"x3:{x3}")

#x 3:tensor([[10, 50],
#        [50, 10]])

#print(f"x3.shape:{x3.shape}")   # x3.shape:torch.Size([2, 2])
  • 索引机制 : 这里的索引 torch.tensor([[0, 1], [1, 0]]) 是 多维整形张量索引。

    • 这种索引会在第 0 维上按张量的形状进行广播。
  • 广播行为:

    • 索引张量的形状是 (2, 2)。
    • PyTorch 会沿第 0 维取出对应的行,并按照索引结果重新排列。
  • 步骤:

    • x[0] -> [10, 20, 30]
    • x[1] -> [40, 50, 60]

    根据索引张量 [[0, 1], [1, 0]],结果排列为:

    [[[10, 20, 30], # 对应索引 (0, 0)
    [40, 50, 60]], # 对应索引 (0, 1)

    [[40, 50, 60], # 对应索引 (1, 0)
    [10, 20, 30]]] # 对应索引 (1, 1)

总结:

  • x1 使用的是高级整数索引,按指定的具体位置取值(减少维度)。
  • x2 使用的是多维张量索引,按张量形状广播,生成一个更高维的结果(不减少维度)。
相关推荐
Yolanda_20221 小时前
如何开发人工智能系统:从专家系统到机器学习
人工智能·机器学习
小天源1 小时前
品牌 AI 智能监测与自动化采集系统
大数据·人工智能·自动化
Navicat中国1 小时前
Navicat 18 支持 Azure OpenAI 接入,合规 AI 赋能 SQL 开发
数据库·人工智能·microsoft·ai·azure·navicat·数据
陈嘿萌1 小时前
CVPR 2026|TherA:让可见光照片“懂冷热”,用文字和参考图控制红外生成
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
shxjnpl1 小时前
MOSS-Transcribe-Diarize 0.9B 私有化部署实战:一个模型完成会议转写、说话人识别与时间戳
人工智能·语音识别·实时音视频
武汉唯众智创1 小时前
心理健康中心 / 咨询室 / 宣泄室怎么建?从空间规划到 AI 系统的一体化方案
人工智能·ai心理健康·ai心理健康测评·心理健康中心建设·心理健康咨询室解决方案
SL_staff1 小时前
APS落地失败的5个隐形坑:离散制造排产为何总在Excel里打转?
java·人工智能·开源
Yolanda_20221 小时前
神经网络基础原理-使用梯度下降训练二次函数模型简单示例
人工智能·深度学习·神经网络
倔强的石头1061 小时前
持续预训练实战_让基础模型适配垂直领域
人工智能·深度学习
段一凡-华北理工大学1 小时前
高炉炼铁机器视觉与智能识别十八讲~系列文章15:可靠性篇:防误报、容错与识别系统的鲁棒性设计
人工智能·算法·机器学习·高炉大模型·高炉机器视觉·高炉炼铁模型开发