@ptrblck I use this code to test the random state, the code like this:
{
            "python": random.getstate(),
            "numpy": np.random.get_state(),
            "cpu": torch.random.get_rng_state(),
            "gpu": torch.cuda.random.get_rng_state()
        }

and, the result is the state is not change in start and end of the evaluate function.