Воспроизведение результатов обучения Pytorch и Tensorflow

алгоритм

Установив глобальное случайное начальное число, можно каждый раз воспроизводить одни и те же результаты обучения.

PyTorch

def seed_torch(seed=42):
    seed = int(seed)
    random.seed(seed)
    os.environ[‘PYTHONHASHSEED’] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)
    torch.backends.cudnn.deterministic = True
    torch.backends.cudnn.benchmark = False

Tensorflow

def seed_tensorflow(seed=42):
    random.seed(seed)
    os.environ[‘PYTHONHASHSEED’] = str(seed)
    np.random.seed(seed)
    tf.set_random_seed(seed)