Tensor列表索引本质

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

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

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])
多列表索引

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

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

多列表以此类推。

相关推荐

  1. Tensor列表索引本质

    2024-07-18 05:52:04       20 阅读
  2. uView IndexList 索引列表

    2024-07-18 05:52:04       53 阅读
  3. 深度学习中读取索引图并转成tensor

    2024-07-18 05:52:04       36 阅读
  4. 列表如何查找索引与字符串

    2024-07-18 05:52:04       39 阅读
  5. 鸿蒙OS应用开发之索引列表选择

    2024-07-18 05:52:04       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 05:52:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 05:52:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 05:52:04       58 阅读
  4. Python语言-面向对象

    2024-07-18 05:52:04       69 阅读

热门阅读

  1. 社会科学战线

    2024-07-18 05:52:04       22 阅读
  2. 资源管理大师:如何在Gradle中配置资源目录

    2024-07-18 05:52:04       24 阅读
  3. derivate_gauss 将图像与高斯函数的导数卷积

    2024-07-18 05:52:04       21 阅读
  4. 掌握Xcode Storyboard:iOS UI设计的可视化之旅

    2024-07-18 05:52:04       21 阅读
  5. Anylogic中Excel 文件(Excel file)的使用

    2024-07-18 05:52:04       16 阅读
  6. uniapp动态计算并设置元素高度

    2024-07-18 05:52:04       22 阅读
  7. uniapp 解决scroll-view组件 refresher-triggered刷新无效

    2024-07-18 05:52:04       19 阅读
  8. AWS ECS 服务创建 CloudWatch 告警

    2024-07-18 05:52:04       18 阅读
  9. 基于 Vue 3 和 Element Plus 构建图书管理系统

    2024-07-18 05:52:04       24 阅读