тензоры не могут содержать данные переменной длины.вы, возможно, ищете cat
, например, здесь у нас есть список с двумя тензорами, которые имеют разные размеры (в их последнем dim (dim = 2)), и мы хотим создатьбольший тензор, состоящий из них обоих, поэтому мы можем использовать cat и создать больший тензор, содержащий оба их данных.
также обратите внимание, что вы не можете использовать cat с половиной тензоров на процессоре с справатеперь , поэтому вы должны преобразовать их в число с плавающей точкой, выполнить конкатенацию и затем преобразовать обратно в половину
import torch
a = torch.arange(8).reshape(2, 2, 2)
b = torch.arange(12).reshape(2, 2, 3)
my_list = [a, b]
my_tensor = torch.cat([a, b], dim=2)
print(my_tensor.shape) #torch.Size([2, 2, 5])
вы не объяснили свою цель, поэтому другой вариант - использовать pad_sequence например:
from torch.nn.utils.rnn import pad_sequence
a = torch.ones(25, 300)
b = torch.ones(22, 300)
c = torch.ones(15, 300)
pad_sequence([a, b, c]).size() #torch.Size([25, 3, 300])
edit: в данном конкретном случае вы можете использовать torch.cat([x.float() for x in sequence], dim=1).half()