#pytorch #tensor
Вопрос:
У меня есть два, тензоры a
и b
:
import torch
a = torch.tensor(([1,2],
[3,4],
[5,6],
[7,8]))
b = torch.tensor(([0,0],
[1,1],
[2,2],
[3,3]))
Которые я могу складывать как по горизонтали, так и по глубине.
d = torch.dstack([a, b])
h = torch.hstack([a, b])
Итак, есть ли какая-либо функция PyTorch, предпочтительно в одной строке, к которой я могу применить d
, чтобы получить h
? Похоже, что я хочу отменить укладку по глубине и повторно сложить их по столбцам. Я пробовал изменять и выравнивать, но ни то, ни другое не работает, так как они оба нарушают порядок значений.
Ответ №1:
в вашем случае используйте torch.unbind
import torch
a = torch.tensor(([1,2],
[3,4],
[5,6],
[7,8]))
b = torch.tensor(([0,0],
[1,1],
[2,2],
[3,3]))
d = torch.dstack([a, b])
h = torch.hstack(torch.unbind(d,2)) # get h from d
Комментарии:
1. Огромное спасибо. Я просмотрел всю документацию, но никогда бы не подумал, что она пройдет мимо
unbind
.