First of all, my model like below. And I am using Pytorch.
When this model put the output of Conv1d to LSTM, sometimes I got RuntimeError and sometimes I got nothing. I want to know why. Please Help me!
model => CNNModel(
  (embed): Embedding(10447, 256, padding_idx=1)
  (cnn): Conv1d(256, 64, kernel_size=(3,), stride=(1,))
  (lstm): LSTM(64, 64, num_layers=64, batch_first=True, bidirectional=True)
  (dropout): Dropout(p=0.5)
  (fc): Linear(in_features=128, out_features=1, bias=True)
  (sigmoid): Sigmoid()
  (loss_fn): BCELoss()
)
optimizer => Adam (
Parameter Group 0
    amsgrad: False
    betas: (0.9, 0.999)
    eps: 1e-08
    lr: 0.001
    weight_decay: 0
)
train:   0%|                                                                  | 0/11 [00:00<?, ?it/s]batch.word[0].size() => torch.Size([64, 257])
embed.size() => torch.Size([64, 256, 257])
conv.size() => torch.Size([64, 255, 64])
h.size() => torch.Size([64, 1])
loss => 0.7036488056182861
done
train:   9%|█████▎                                                    | 1/11 [00:10<01:43, 10.35s/it]batch.word[0].size() => torch.Size([64, 311])
embed.size() => torch.Size([64, 256, 311])
conv.size() => torch.Size([64, 309, 64])
h.size() => torch.Size([64, 1])
loss => 0.6949299573898315
done
train:  18%|██████████▌                                               | 2/11 [00:23<01:41, 11.29s/it]batch.word[0].size() => torch.Size([64, 939])
embed.size() => torch.Size([64, 256, 939])
conv.size() => torch.Size([64, 937, 64])

I think maybe this cause because of shape of Conv’s output and LSTM doen’t match.
But I don’t know why  conv.size() => torch.Size([64, 309, 64]) go well, but conv.size() => torch.Size([64, 937, 64]) not.
How can I fix this error? What should I do??