Pytorch - 在softmax图层之后选择最佳概率

时间:2018-06-09 16:55:10

标签: python numpy pytorch softmax

我有一个使用Pytorch 0.4.0的逻辑回归模型,我的输入是高维的,我的输出必须是标量 - 012

我使用线性图层和softmax图层一起返回n x 3张量,其中每列代表输入落入三个类别之一的概率(0,{{ 1}}或1)。

但是,我必须返回2张量,所以我需要以某种方式为每个输入选择最高概率并创建一个张量,指示哪个类具有最高概率。如何使用Pytorch实现这一目标?

为了说明,我的Softmax输出:

n x 1

我必须回复:

[[0.2, 0.1, 0.7],
 [0.6, 0.2, 0.2],
 [0.1, 0.8, 0.1]]

1 个答案:

答案 0 :(得分:1)

torch.argmax()可能就是你想要的:

import torch

x = torch.FloatTensor([[0.2, 0.1, 0.7],
                       [0.6, 0.2, 0.2],
                       [0.1, 0.8, 0.1]])

y = torch.argmax(x, dim=1)
print(y.detach())
# tensor([ 2,  0,  1])

# If you want to reshape:
y = y.view(1, -1)
print(y.detach())
# tensor([[ 2,  0,  1]])