Couldn’t we use shared embeddings just like that?
class Seq2Seq(nn.Module):
    def __init__(self):
        super(Seq2Seq, self).__init__()
        self.embed_seq2seq= nn.Embedding(len(vocab), 75, padding_idx=vocab("<pad>"))
        self.lstm_enc = nn.LSTM(75, 150, 2, batch_first=True, bidirectional=False)
        self.lstm_dec = nn.LSTM(75, 150, 2, batch_first=True, bidirectional=False)
        self.linear = nn.Linear(150, 1)

And then in the forward function use self.embed_seq2seq for encoder and decoder