Pytorch: есть ли функция, похожая на torch.argmax, которая действительно может сохранить размер исходных данных? - PullRequest
0 голосов
/ 02 ноября 2018

Например, код

input = torch.randn(3, 10)
result = torch.argmax(input, dim=0, keepdim=True)

input - это

tensor([[ 1.5742,  0.8183, -2.3005, -1.1650, -0.2451],
       [ 1.0553,  0.6021, -0.4938, -1.5379, -1.2054],
       [-0.1728,  0.8372, -1.9181, -0.9110,  0.2422]])

и result - это

tensor([[ 0,  2,  1,  2,  2]])

Однако я хочу получить такой результат

tensor([[ 1,  0,  0,  0,  0],
        [ 0,  0,  1,  0,  0],
        [ 0,  1,  0,  1,  1]])

1 Ответ

0 голосов
/ 07 ноября 2018

Наконец-то я решил это. Но это решение может быть неэффективным. Код как следует,

input = torch.randn(3, 10)
result = torch.argmax(input, dim=0, keepdim=True)
result_0 = result == 0
result_1 = result == 1
result_2 = result == 2
result = torch.cat((result_0, result_1, result_2), 0)
...