Используйте torch.eq () только для некоторого значения в Pytorch - PullRequest
0 голосов
/ 18 мая 2018

Есть ли способ использовать torch.eq () или аналогичную функцию для вычисления равенства на основе элементов, но только для некоторых элементов?Допустим, мне нужно знать, сколько 1 равно в двух тензорах, но мне нет дела до других чисел.

Есть идеи, как это сделать?

1 Ответ

0 голосов
/ 18 мая 2018

Допустим, у нас есть 2 тензора A и B, заполненные случайными элементами и в конечном итоге где-то 1 с.Тензор C является результатом того, к чему вы стремитесь:

A = torch.rand((2, 3, 3))
B = torch.rand((2, 3, 3))

# fill A and B with some 1s
...

C = (A == 1) * (B == 1)

Используя следующие тензоры, мы получаем:

(A) [[[ 0.6151,  1.0000,  0.6515],
         [ 0.3337,  0.4262,  0.0731],
         [ 0.4571,  0.2380,  1.0000]],

        [[ 1.0000,  0.1114,  0.8183],
         [ 0.9178,  1.0000,  1.0000],
         [ 0.8180,  0.8112,  0.2972]]]

(B) [[[ 0.4305,  1.0000,  0.5378],
         [ 0.4171,  0.4365,  0.2805],
         [ 0.1076,  0.1259,  0.9695]],

        [[ 1.0000,  0.0911,  1.0000],
         [ 0.6757,  0.5095,  0.4499],
         [ 0.5787,  1.0000,  1.0000]]]

(C) [[[ 0,  1,  0],
         [ 0,  0,  0],
         [ 0,  0,  0]],

        [[ 1,  0,  0],
         [ 0,  0,  0],
         [ 0,  0,  0]]]
...