Тензор маски Pytorch с логическим массивом numpy - PullRequest
0 голосов
/ 06 января 2020

У меня есть 84x84 тензор питорха с именем target. Мне нужно замаскировать его с помощью 84x84 логического numpy массива, который состоит из True и False.

Когда я делаю target = target[mask], я получаю ошибку TypeError: can't convert np.ndarray of type numpy.bool_. The only supported types are: double, float, float16, int64, int32, and uint8.

Удивительно, но я получаю эту ошибку только при работе на GPU. При работе на процессоре все работает нормально. Как я могу это исправить?

1 Ответ

1 голос
/ 06 января 2020

Я думаю, что есть некоторая путаница с типами. Но это работает.

import torch
tensor = torch.randn(84,84)
c = torch.randn(tensor.size()).bool()
c[1, 2:5] = False
x = tensor[c].size()

Для тестирования я создал тензор со случайными значениями. После этого 3 элемента устанавливаются в False. На последнем шаге я смотрю размер 7053, полученный из 84 ^ 2 - 3.

Надеюсь, что это как-то поможет.

...