我有一个使用Pytorch 0.4.0的逻辑回归模型,我的输入是高维的,我的输出必须是标量 - 0
,1
或2
。
我使用线性图层和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]]
答案 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]])