Hi,
I try to train a model on several GPUs with DataParallel which uses several RNNs inside (pack_padded_sequence and pad_packed_sequence), but I get this error:
ValueError: gather got an input of invalid size: got 10x13x29, but expected 10x14x29
Each RNN is constructed with batch_first=True flag.
Pseudocode of my model is like this.
class Model:
def forward(x, lenghts)
for rnn in self.rrns:
x = rnn(x, lengths)
class RNN:
def forward(x, length):
#...
x = pack_padded_sequence(x, output_lengths, batch_first=True)
x, _ = self.rnn(x)
x, _ = rnn.pad_packed_sequence(x, batch_first=True)
If I don’t use pack_padded_sequence everything works great. What could be a problem? Would appreciate any hints/directions.