gpt4 book ai didi

python - 将张量分配给多个切片

转载 作者:行者123 更新时间:2023-11-28 21:31:25 26 4
gpt4 key购买 nike

a = tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
b = torch.tensor([1, 2])
c = tensor([[1, 2, 0, 0],
[0, 1, 2, 0],
[0, 0, 1, 2]])

有没有办法通过将 b 分配给 a 的切片来获得 c 而无需任何循环?也就是说,a[indices] = b 对于某些 indices 或类似的东西?

最佳答案

你可以在pytorch中使用scatter方法。

a = torch.tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])

b = torch.tensor([1, 2])

index = torch.tensor([[0,1],[1,2],[2,3]])

a.scatter_(1, index, b.view(-1,2).repeat(3,1))
# tensor([[1, 2, 0, 0],
# [0, 1, 2, 0],
# [0, 0, 1, 2]])

关于python - 将张量分配给多个切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58155999/

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