python - 通过索引列表选择pytorch张量元素

标签 python pytorch tensor

我想我有一个非常简单的问题。让我们采用以下长度为 6

的张量
t = torch.tensor([10., 20., 30., 40., 50., 60.])

现在我只想访问特定索引处的元素,例如 [0, 3, 4] 处的元素。所以我想回来

# exptected output 
tensor([10., 40., 50.])

我找到了torch.index_select这对于二维张量非常有效,例如维度 (2, 4),但不适用于给定的 t

如何在不使用 for 循环的情况下基于一维张量中给定的索引列表访问一组元素?

最佳答案

事实上,您可以使用 index_select 来实现此目的:

t = torch.tensor([10., 20., 30., 40., 50., 60.])
output = torch.index_select(t, 0, torch.LongTensor([0, 3, 4]))
# output: tensor([10., 40., 50.])

您只需将尺寸 (0) 指定为第二个参数即可。这是为一维输入张量指定的唯一有效维度。

关于python - 通过索引列表选择pytorch张量元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74551428/

相关文章:

machine-learning - 在pytorch中,向后方法的第一个参数(梯度)是什么?

python-3.x - pytorch模型加载和预测,AttributeError : 'dict' object has no attribute 'predict'

python - 一个 3-d 张量如何被两个 2d 张量索引?

python - Pytorch:在 dataloader.dataset 上使用 torch.utils.random_split() 后,数据中缺少批量大小

python - 剥离功能不起作用。如何解决问题?

python - 获取数组,它是对对象数组的每个元素调用函数的结果

python - Opencv:如何计算 bolt 上的线程峰?

python - 获取张量 a 中存在于张量 b 中的元素的索引

python - 为什么tensordot/reshape与kron不一致?

python - Groupby 列保留多行的最小值