gpt4 book ai didi

python - PyTorch 中的 index_select 和 tensor[sequence] 有区别吗?

转载 作者:行者123 更新时间:2023-12-05 06:22:16 26 4
gpt4 key购买 nike

大家。我是 PyTorch 的新手。现在我正在学习张量的索引。我注意到我们可以通过 tensor.index_select()tensor[sequence] 索引张量。

In [1]: x = torch.randn(3, 4)

In [2]: indices = torch.tensor([0, 2])

In [3]: x.index_select(0, indices)
Out[3]:
tensor([[ 0.2760, -0.9543, -1.0499, 0.7828],
[ 1.3514, -1.1289, 0.5052, -0.0547]])

In [4]: x[[0,2]]
Out[4]:
tensor([[ 0.2760, -0.9543, -1.0499, 0.7828],
[ 1.3514, -1.1289, 0.5052, -0.0547]])

我对这两种方法感到困惑,正在寻找一些文档。但是我失败了。谁能告诉我它们之间有什么区别,这些区别是什么?

最佳答案

这看起来像是旧的(较慢的)索引的残余。

参见 this pull request .

我还认为您以前无法对张量进行二进制逻辑索引。

a = torch.randn((1,3,4,4))
dim = 2
indices = [0,1]
%timeit a.index_select(dim, torch.tensor(indices))
12.7 µs ± 1.28 µs per loop (mean ± std. dev. of 7 runs, 100000 loops each)
%timeit a[:,:,indices,:]
16.7 µs ± 640 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

关于python - PyTorch 中的 index_select 和 tensor[sequence] 有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59344751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com