Подсчитать ненулевой элемент вдоль оси в pytorch - PullRequest
0 голосов
/ 10 июня 2018

У меня есть (32x750) тензор

tensor([[ 0.0000,  0.0000,  0.0000,  ...,  0.0000,  0.0000,  0.0043],
        [ 0.0000,  0.0000,  0.0000,  ...,  0.0000,  0.0000,  0.0043],
        [ 0.0000,  0.0044,  0.0000,  ...,  0.0044,  0.0000,  0.0000],
        ...,
        [ 0.0059,  0.0000,  0.0059,  ...,  0.0059,  0.0000,  0.0000],
        [ 0.0059,  0.0000,  0.0059,  ...,  0.0059,  0.0000,  0.0000],
        [ 0.0000,  0.0000,  0.0000,  ...,  0.0000,  0.0056,  0.0000]], device='cuda:0')

И я хочу получить количество ненулевых элементов в каждой строке.Нечто подобное [12 47 0 5 .... 8 7 50] Это обсуждение и это не решило мою проблему и касалось количества ненулевых элементов для 1-D tensor.

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Проблема решена с помощью этого сообщения Я использовал: 750 - (tensor == 0).sum(dim=1)

0 голосов
/ 10 июня 2018
list_of_num_nonzero_in_each_row = []
for row in my tensor:
    list_of_num_nonzero_in_each_row.append(sum(row == 0.0).item())
...