Source code for nirs4all.utils.reproducibility

"""Reproducibility utilities."""
from typing import Optional
import os
import random
import numpy as np

[docs] def init_global_random_state(seed: Optional[int] = None): """Initialize global random state for reproducibility. Sets random seeds for numpy, Python's random module, TensorFlow, and sklearn to ensure reproducible results across runs. Args: seed: Random seed value. If None, uses default seed of 42 for TensorFlow. """ if seed is not None: np.random.seed(seed) random.seed(seed) os.environ['PYTHONHASHSEED'] = str(seed) try: import tensorflow as tf tf.random.set_seed(seed if seed is not None else 42) except ImportError: pass try: from sklearn.utils import check_random_state _ = check_random_state(seed) except ImportError: pass