"""Procedures associated to PyTorch data loaders.
Functions
---------
seed_worker
Set workers seed in PyTorch data loaders to preserve reproducibility.
"""
#
# Modules
# =============================================================================
# Standard
import random
# Third-party
import torch
import numpy as np
#
# Authorship & Credits
# =============================================================================
__author__ = 'Bernardo Ferreira (bernardo_ferreira@brown.edu)'
__credits__ = ['Bernardo Ferreira', ]
__status__ = 'Stable'
# =============================================================================
#
# =============================================================================
[docs]def seed_worker(worker_id):
"""Set workers seed in PyTorch data loaders to preserve reproducibility.
Taken from: https://pytorch.org/docs/stable/notes/randomness.html
Parameters
----------
worker_id : int
Worker ID.
"""
worker_seed = torch.initial_seed() % 2**32
np.random.seed(worker_seed)
random.seed(worker_seed)