Random seed¶
Utilities for seeding the random number generators.
Seed the random number generators¶
API¶
- skrl.utils.set_seed(seed: int | None = None, deterministic: bool = False) int[source]¶
Set the seed for the random number generators.
Note
In distributed runs, the worker/process seed will be incremented (counting from the defined value) according to its rank.
Warning
Due to NumPy’s legacy seeding constraint the seed must be between 0 and 2**32 - 1. Otherwise a NumPy exception (
ValueError: Seed must be between 0 and 2**32 - 1) will be raised.Modified packages:
randomnumpytorch(if available)skrl(PRNG keys:config.torch.key,config.jax.key,config.warp.key)
Example:
# fixed seed >>> from skrl.utils import set_seed >>> set_seed(42) [skrl:INFO] Seed: 42 42 # random seed >>> from skrl.utils import set_seed >>> set_seed() [skrl:INFO] Seed: 1776118066 1776118066 # enable deterministic. The following environment variables should be established: # - CUDA 10.1: CUDA_LAUNCH_BLOCKING=1 # - CUDA 10.2 or later: CUBLAS_WORKSPACE_CONFIG=:16:8 or CUBLAS_WORKSPACE_CONFIG=:4096:8 >>> from skrl.utils import set_seed >>> set_seed(42, deterministic=True) [skrl:INFO] Seed: 42 [skrl:WARNING] PyTorch/cuDNN deterministic algorithms are enabled. This may affect performance 42
- Parameters:
seed – The seed to set. If
None, a random seed will be generated.deterministic – Whether PyTorch is configured to use deterministic algorithms. The following environment variables should be established for CUDA 10.1 (
CUDA_LAUNCH_BLOCKING=1) and for CUDA 10.2 or later (CUBLAS_WORKSPACE_CONFIG=:16:8orCUBLAS_WORKSPACE_CONFIG=:4096:8). See PyTorch Reproducibility for details.
- Returns:
Seed.