小编Sea*_*Lee的帖子

torch.unique() 中的参数“dim”如何工作?

我试图提取矩阵每一行中的唯一值并将它们返回到同一个矩阵中(重复值设置为 0)例如,我想转换

torch.Tensor(([1, 2, 3, 4, 3, 3, 4],
              [1, 6, 3, 5, 3, 5, 4]])
Run Code Online (Sandbox Code Playgroud)

torch.Tensor(([1, 2, 3, 4, 0, 0, 0],
              [1, 6, 3, 5, 0, 0, 4]])
Run Code Online (Sandbox Code Playgroud)

或者

torch.Tensor(([1, 2, 3, 4, 0, 0, 0],
              [1, 6, 3, 5, 4, 0, 0]])
Run Code Online (Sandbox Code Playgroud)

即行中的顺序并不重要。我尝试过使用pytorch.unique(),并且在文档中提到可以使用参数指定采用唯一值的维度dim。然而,它似乎不适用于这种情况。

我试过了:

output= torch.unique(torch.Tensor([[4,2,52,2,2],[5,2,6,6,5]]), dim = 1)

output
Run Code Online (Sandbox Code Playgroud)

这使

tensor([[ 2.,  2.,  2.,  4., 52.],
        [ 2.,  5.,  6.,  5.,  6.]])
Run Code Online (Sandbox Code Playgroud)

有人对此有特别的解决办法吗?如果可能的话,我会尽量避免 for 循环。

pytorch

4
推荐指数
2
解决办法
5680
查看次数

标签 统计

pytorch ×1