In general, even if your model has randomness, you can achieve deterministic execution by explicitly setting seeds.
seed = 0
torch.manual_seed(seed)
if torch.cuda.is_available():
    torch.cuda.manual_seed_all(seed)

But in your particular case, the hidden parameters in GRU are initialized randomly. See http://pytorch.org/docs/master/_modules/torch/nn/modules/rnn.html#GRU 157