Укладывать бинарные маски в pytorch? - PullRequest
0 голосов
/ 28 апреля 2020

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

Трехмерные тензоры имеют n экземпляров некоторого сегментированного объекта в двоичной маске шириной 704 и высотой 1080.

Допустим, у меня есть три из этих 3-мерных тензоров. Все они имеют размер [n, 704,1080], где n - это количество отдельных объектов (и, следовательно, отдельных двоичных масок) для кадра, 704 - это высота, а 1080 - это ширина:

t1.size = torch.Size([9, 704, 1280])
t2.size = torch.Size([12, 704, 1280])
t3.size = torch.Size([10, 704, 1280])

I хочу создать их стек, добавив четвертое измерение, а. ie. [a, n, 704, 1280], где a - исходный 3-мерный тензор.

Цель состоит в том, чтобы иметь 4-мерный тензор, который может хранить данные многочисленных 3-мерных тензоров.

Я пытался torch.stack([t1, t2, t3]), но это не работает, поскольку второе измерение, n, не согласовано между всеми тензорами.

Как я могу go об этом, так как стек не работает?

1 Ответ

1 голос
/ 28 апреля 2020

Вы не можете. Все тензорные размеры, кроме первого, должны быть одинаковыми. Единственный способ сделать это - добавить фиктивные строки к первому и третьему тензору, чтобы они имели одинаковый размер (12 704,1280)

Или вы можете сложить их в один 3-мерный тензор.

...