The weights are initialised when you create the LSTM on the line
self.lstm = nn.LSTM(embedding_dim, hidden_dim, hidden_layers)

However in forward, you use it twice. So it uses the same weights twice.
If you want to use different sets of weights, you need to initialise a second LSTM.
self.lstm2 = nn.LSTM(embedding_dim, hidden_dim, hidden_layers)