维度1上倒叙排序:
方法1,先排序,再反转
index_score=score_mat.argsort(dim=1).flip(dims=[1])
方法2 倒序排序
index_score=score_mat.argsort(dim=1,descending=True)
tok排序:
pred = torch.randn((4, 4))
print(pred)
values, indices = pred.topk(3, dim=1)
print(indices)
torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) -> (Tensor, LongTensor)
参数:
input (Tensor) – 输入张量
k (int) – “top-k”中的k
dim (int, optional) – 排序的维
largest (bool, optional) – 布尔值,控制返回最大或最小值
sorted (bool, optional) – 布尔值,控制返回值是否排序
out (tuple, optional) – 可选输出张量 (Tensor, LongTensor) output buffer
经过测试,效果一样的:
import torch
data=torch.randn(4,4)
print(data)
index_score=data.argsort(dim=1).flip(dims=[1])
print(index_score)
index_score2=data.argsort(dim=1,descending=True)
print(index_score2)
pytorch反转:
import torch
data=torch.arange(10).view(2, 5)
print(data)
aaa=torch.flip(data, dims=[ 1])
print(aaa)
bbb=torch.flip(data, dims=[0]) # 对第0维进行反转
print(bbb)
ccc= torch.flip(data, dims=[0, 1]) # 对第0、1维进行反转
print(ccc)
ddd= data.flip(dims=[0, 1]) # 对第0、1维进行反转,与上一句效果相同
print(ddd)