Tensor列表索引本质

张量列表索引本质
单列表索引

将原张量shape对应位置数字更改为索引列表的形状

python 复制代码
data = torch.randn((9, 512, 30))
index_list = [0, 1, 3]
print(data[:, index_list].shape)
'''
[[9, 3, 30]]
'''


# torch.Size([1, 6, 5])
index2_list = torch.IntTensor([[[4, 5, 6, 7, 8],
                               [4, 5, 6, 7, 8],
                               [4, 5, 6, 7, 8],
                               [4, 5, 6, 7, 8],
                               [4, 5, 6, 7, 8],
                               [4, 5, 6, 7, 8]]])
print(data[:, index2_list].shape)
# torch.Size([6, 1, 6, 5, 30])
多列表索引

双列表索引本质就是索引列表之间通过广播机制,达成一致。

python 复制代码
data = torch.randn((6, 512, 30))
# index1: torch.Size([1, 6, 5])
index1 = torch.IntTensor([[[4, 5, 6, 7, 8],
                           [4, 5, 6, 7, 8],
                           [4, 5, 6, 7, 8],
                           [4, 5, 6, 7, 8],
                           [4, 5, 6, 7, 8],
                           [4, 5, 6, 7, 8]]])

# index2: torch.Size([5])
index2 = torch.IntTensor([0, 1, 2, 3, 4])


# 双列表索引
print(data[index1, index2].size())
'''
torch.Size([1, 6, 5, 30])
'''

# 三列表索引
print(data[index1, index2, index1].size())
'''
torch.Size([1, 6, 5])
'''
列表索引本质

多列表是先广播。

如果是单列表:

  • 1\] 返回:\[data\[1\]

  • 1, 2, 3\], 返回:\[data\[1\], data\[2\], data\[3\]

  • \[1, 2, 3\]\],返回: \[ \[ data\[1\], data\[2\], data\[3\] \]

如果是双列表:

  • 1\], \[2\] : 返回:\[ data\[1, 2\]

  • \[1\]\], \[1, 2\] : 先广播:\[\[1, 1\]\], \[\[1, 2\]\] 重叠 \[\[(1,1), (1, 2)\]\] 返回: \[ \[ data\[1, 1\], data\[1,2\] \]

多列表以此类推。

相关推荐
恒哥的爸爸4 分钟前
GPT原理笔记
人工智能·笔记·gpt
咚咚王者7 分钟前
人工智能之知识蒸馏 第五章 蒸馏优化技术:精度损失补偿方法
人工智能
kishu_iOS&AI16 分钟前
Pytorch —— 自动微分模块
人工智能·pytorch·python·深度学习·算法·线性回归
星浩AI17 分钟前
手把手带你在 Windows 安装 Hermess Agent,并接入飞书 [喂饭级教程含踩坑经验]
人工智能·后端·agent
争渡假渡18 分钟前
Claude Code 工作流 vs 人类程序员工作流
人工智能
海天一色y23 分钟前
基于PyTorch的Oxford-IIIT Pet宠物品种细粒度分类:全流程实战指南
pytorch·分类·宠物
配奇29 分钟前
集成学习(Ensemble Learning)
人工智能·机器学习·集成学习
新缸中之脑33 分钟前
RAG 只是权宜之计
人工智能
DeepModel34 分钟前
通俗易懂讲透 EM 算法(期望最大化)
人工智能·python·算法·机器学习
海海不掉头发35 分钟前
【AI大模型实战项目】大模型入门实战:两个落地项目保姆级教程12月14日-【项目】基于知识库RAG的物流行业信息问答系统
人工智能·python·深度学习·语言模型·自然语言处理·pycharm·scikit-learn