RNN do give the same result once its parameters is given.
I ran into the same problem yesterday.
The seemingly random behavior may be caused by:


dropout: When training, dropout layer randomly choose some units to block, which may cause random behavior. see https://pytorch.org/docs/stable/nn.html#dropout-layers 6 for more information. In the predicting phase, you should set model.training to false by model.eval() to distribute your weight over all layer units.


random initialization: You should not only reconstruct your network, but also load your parameters.(My case)