Basically my code right now looks like this:
noise = torch.randn(x.size())
while np.any(np.isnan(noise.numpy())):
    noise = torch.randn(x.size())

and it is quite reproducible (at least for me, that’s why I was wondering why nobody else mentioned it).