Я пытаюсь применить слой conv2d к пакету данных последовательности, где последовательности не имеют одинаковую длину.Я попытался передать упакованную последовательность, но это не сработало ...
import torch
import torch.nn as nn
conv1 = nn.Conv2d(1, 16, 5)
x = torch.randn([16,1580,201]) # Where x has dimensions (batch*sequence*feats)
lengths = torch.tensor(
[1580, 959, 896, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 335, 254, 219]
)
# So only the first element in the batch has size 1580, the rest have been padded
x_pack = torch.nn.utils.rnn.pack_padded_sequence(x, lengths, batch_first=True)
x_pack = conv1(x_pack)
print(x_pack)
# ... then feed x_pack to an LSTM...
Кто-нибудь знает, как не применять свертку к дополненным значениям входов?мне придется повторять каждый элемент пакета?
Спасибо.