pytorch中onehot编码转为普通label标签
label转onehot的很多,但是onehot转label的有点难找,所以就只能自己实现以下,用的topk函数,不知道有没有更好的实现
one_hot = torch.tensor([[0,0,1],[0,1,0],[0,1,0]]) print(one_hot) label = torch.topk(one_hot, 1)[1].squeeze(1)
print(label)
tensor([[0, 0, 1],
[0, 1, 0],
[0, 1, 0]])
tensor([2, 1, 1])
评论区大佬给了另一个实现方法:
label = torch.argmax(one_hot, -1)