I would like to do something like an argmax but with multiple top values. I know how to use the normal torch.argmax
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 1.3398, 1.2663, -0.2686, 0.2450],
[-0.7401, -0.8805, -0.3402, -1.1936],
[ 0.4907, -1.3948, -1.0691, -0.3132],
[-1.6092, 0.5419, -0.2993, 0.3195]])
>>> torch.argmax(a)
tensor(0)
But now I need to find the indices for the top N values. So something like this
>>> a = torch.randn(4, 4)
>>> a
tensor([[ 1.3398, 1.2663, -0.2686, 0.2450],
[-0.7401, -0.8805, -0.3402, -1.1936],
[ 0.4907, -1.3948, -1.0691, -0.3132],
[-1.6092, 0.5419, -0.2993, 0.3195]])
>>> torch.argmax(a,top_n=2)
tensor([0,1])
I haven't found any function capable of doing this in pytorch, does anyone know?