簡體   English   中英

根據秩張量映射 3D 張量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM