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\] \]

多列表以此类推。

相关推荐
薛定e的猫咪4 分钟前
(NeurIPS 2022)GraphGPS:MPNN 与全局注意力的融合之道
人工智能·深度学习·学习·算法
LabVIEW开发4 分钟前
把量子纠缠实验搬进屏幕:用 LabVIEW 仿真双光子量子态层析
人工智能·labview·labview知识·labview功能·labview程序
2501_9318197011 分钟前
长沙话标注公司语料数据迭代更新周期过长痛点 信实翻译定期迭代机制实际价值剖析
人工智能·语音识别
chunmiao303218 分钟前
大模型推理加速新方向:中科曙光 ParaCache 用存储换计算
大数据·人工智能
MartinYeung522 分钟前
[论文学习]激活差异揭示后门:SAE架构对比研究
人工智能·学习·架构
小猴子爱上树24 分钟前
跨境电商AI批量图片翻译工具,视频字幕翻译免费试用
人工智能·python·音视频
开开心心就好24 分钟前
电子教鞭工具支持画框写字插图片功能齐全
android·开发语言·前端·javascript·人工智能·pdf·html
Dovis(誓平步青云)30 分钟前
拍视频前先把镜头想清楚:做一个分镜取景辅助器
android·java·服务器·javascript·人工智能
高洁0135 分钟前
Teacher Forcing技术解析
人工智能·python·深度学习·transformer·知识图谱
MartinYeung543 分钟前
[论文分析]使大型语言模型智能体与理性和道德偏好对齐:一种监督微调方法
人工智能·机器学习·语言模型