Как сопоставить элементы в двух тензорах pytorch - PullRequest
1 голос
/ 08 февраля 2020

У меня два тензора pytorch имеют одинаковое количество строк, (тензор-размер-это (6,4) и тензор-размер-это (6), первый тензор является координатными точками ограничительной рамки, тогда как второй тензор является оценки предсказания.

tensor1 = 
([[780.8306,  98.1060, 813.8367, 149.8171],
[585.6562, 117.6804, 621.6012, 166.3151],
[ 88.4085, 117.1313, 129.3327, 173.1145],
[223.1263, 239.2682, 255.1892, 270.7897],
[194.4088, 117.9768, 237.3028, 166.1765],
[408.9165, 109.0131, 441.0802, 141.2362]])
tensor2 =
([0.9842, 0.9751, 0.9689, 0.8333, 0.7021, 0.6191])

Как я могу объединить каждый элемент в тензор2 с соответствующей строкой в ​​тензор 1)?

Я хочу получить оценку пристрастия и ограничивающий прямоугольник. Вывод будет примерно таким:

prediction  bounding box
0.9842      780.8306,  98.1060, 813.8367, 149.8171
0.9751      585.6562, 117.6804, 621.6012, 166.3151]
0.96898     88.4085, 117.1313, 129.3327, 173.1145
0.8333      223.1263, 239.2682, 255.1892, 270.7897
0.7021      194.4088, 117.9768, 237.3028, 166.1765
0.6191      408.9165, 109.0131, 441.0802, 141.2362

Я ценю Если кто-нибудь может помочь, Спасибо

1 Ответ

1 голос
/ 08 февраля 2020

Вы можете использовать torch.cat для объединения столбцов. Поскольку cat требует, чтобы все тензоры имели одинаковое количество измерений, вам сначала нужно вставить единичное измерение в tensor2, чтобы сделать его (6, 1). Это можно сделать несколькими способами, но наиболее очевидным является, вероятно, Tensor.unsqueeze(1), который изменяет тензор, чтобы иметь унитарное измерение в измерении 1.

tensor21 = torch.cat((tensor2.unsqueeze(1), tensor1), dim=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...