Тензоры суммы Pytorch, выполняющие операцию в каждом наборе чисел - PullRequest
0 голосов
/ 04 мая 2019

У меня есть следующий тензор Pytorch:

V1 = torch.tensor([[2, 4], [6, 4], [5, 3]])

Я хочу сделать сумму разностей каждой пары чисел (применяя абсолютное значение), что-то вроде кода ниже;

result.sum(abs(2-4), abs(6-4), abs(5-3))

Я могу сделать это с помощью оператора for:

total = 0
for i in range(0,vector.size(0)):
    total = total + torch.abs(vector.data[i][1] - vector.data[i][0])

Но я хочу сделать это без использования for.

Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 04 мая 2019

Вы можете сделать

torch.abs(V1[:, 1]- V1[:, 0])

и для суммирования

torch.sum(torch.abs(V1[:, 1]- V1[:, 0]))

0 голосов
/ 05 мая 2019

Вы можете использовать более общий подход, как в следующем фрагменте кода:

In [46]: torch.sum(torch.abs(V1[:, :-1] - V1[:, 1:]))
Out[46]: tensor(6)
...