Один из способов сделать это -
def my_odd_padding(list_of_2d_tensors, pad_value):
# get the sizes of the matrices
hs = [t_.shape[0] for t_ in list_of_2d_tensors]
ws = [t_.shape[1] for t_ in list_of_2d_tensors]
# allocate space for output
result = torch.zeros(sum(hs), sum(ws))
result.add_(pad_value)
fh = 0
fw = 0
for i, t_ in enumerate(list_of_2d_tensors):
result[fh:fh+hs[i], fw:fw+ws[i]] = t_
fh += hs[i]
fw += ws[i]
return result
при условии, что все тензоры на list_of_2d_tensors
имеют одинаковый dtype
и на одном и том же device
, вы можете явно установить этот тип dtype и устройство на result
когда вы выделяете его с помощью torch.zeros