[英]Mapping 3D tensor according to a rank tensor
我有一個名為 rank 的張量,其形狀為 2x3,如下所示:
tensor([[ 0, 1, 2],
[ 2, 0, 1])
我想構造一個 2X3x3 矩陣,其中內部矩陣最初使用torch.zeros(2,3,3)
填充為零。 對於與等級張量中的值相對應的最后一個維度索引,我想將最后一個維度更新為值 1。 使用排名中給出的索引。
最終 output:
tensor([
tensor([[1, 0, 0],
[0, 1, 0],
[0, 0, 1]],
tensor([[[0, 0, 1],
[1, 0, 0],
[0, 1, 0]]
])
值 1 根據秩張量中給出的秩填充。 如何在 pytorch 和 python 中執行此操作。
鑒於:
i=torch.tensor([[ 0, 1, 2],
[ 2, 0, 1]])
x=torch.tensor([[[1, 0, 0],
[0, 1, 0],
[0, 0, 1]],
[[0, 0, 1],
[1, 0, 0],
[0, 1, 0]]])
您可以使用torch.scatter_
執行此操作:
>>> torch.zeros(2,3,3).scatter_(2, i[:,:,None].expand_as(x), value=1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.