Pytorch是否有一个topk的反义词,返回最小的k个元素?

up9lanfz  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(125)

Pytorch中的topk操作“返回给定输入Tensor沿着给定维度的k个最大元素”(来自here)。但是它是否有一个相反的操作,返回最小的k个元素?

top k

x = torch.arange(1., 6.)
print(x)
>>> tensor([ 1.,  2.,  3.,  4.,  5.])
torch.topk(x, 3)
>>> torch.return_types.topk(values=tensor([5., 4., 3.]), indices=tensor([4, 3, 2]))

字符串

min k -->是否存在?

x = torch.arange(1., 6.)
print(x)
>>> tensor([ 1.,  2.,  3.,  4.,  5.])
torch.mink(x, 3) # doesn't run
>>> torch.return_types.mink(values=tensor([1., 2., 3.]), indices=tensor([0, 1, 2]))


我知道一种解决方法是将Tensor乘以-1

torch.topk(-x, 3)


但是想知道这个mink操作是否已经存在。

toe95027

toe950271#

查看文档页面https://pytorch.org/docs/stable/generated/torch.topk.html
有一个关键字参数来获取最小值(和索引)
largest(bool,可选)-控制返回最大或最小的元素
所以mink就是functools.partial(torch.topk, largest=False)

相关问题