2017-07-09 20 views
1

PyTorchテンソルでは別の値を見つけることを目指しています。
Tensorflowのunique opを効率的に複製する方法はありますか?PyTorchの一意のテンソル値

+1

ただ、今後の参考のために - そのための機能要求は、ここで、pytorchのgithubの上があります:https://github.com/pytorch/pytorch/issues/2031 – cleros

答えて

4

これを行うには、numpyに変換してnumpyの組み込みのunique関数を使用するのが最も簡単な方法です(最も簡単な方法)。そのようです。

def unique(tensor1d): 
    t, idx = np.unique(tensor1d.numpy(), return_inverse=True) 
    return torch.from_numpy(t), torch.from_numpy(idx) 

だから、あなたがそれをしようとすると:

t, idx = unique(torch.LongTensor([1, 1, 2, 4, 4, 4, 7, 8, 8])) 
# t --> [1, 2, 4, 7, 8] 
# idx --> [0, 0, 1, 2, 2, 2, 3, 4, 4] 
+0

これはうまくいくと思いますが、あまりにも時間がかかることがありますので、むしろ沼地の作業を避けたいと思います。とにかく、これは唯一の解決策だと思います。ありがとうございました。 – arosa

関連する問題