日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

pytorch中如何設置隨機種子_python

作者:大蝦飛哥哥 ? 更新時間: 2023-01-11 編程語言

pytorch設置隨機種子

pytorch設置隨機種子 - 保證復現模型所有的訓練過程

在使用 PyTorch 時,如果希望通過設置隨機數種子,在 GPU 或 CPU 上固定每一次的訓練結果,則需要在程序執行的開始處添加以下代碼:

def seed_everything():
    '''
    設置整個開發環境的seed
    :param seed:
    :param device:
    :return:
    '''
    import os
    import random
    import numpy as np

    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)
    
    # some cudnn methods can be random even after fixing the seed
    # unless you tell it to be deterministic
    torch.backends.cudnn.deterministic = True

pytorch/tensorflow設置隨機種子 ,保證結果復現

Pytorch隨機種子設置

import numpy as np
import random
import os
import torch
def seed_torch(seed=2021):
? ? 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) # if you are using multi-GPU.
? ? torch.backends.cudnn.benchmark = False
? ? torch.backends.cudnn.deterministic = True
? ? torch.backends.cudnn.enabled = False
seed_torch()

Tensorflow設置隨機種子

第一步 僅導入設置種子和初始化種子值所需的那些庫

import tensorflow as tf
import os
import numpy as np
import random

SEED = 0

第二步 為所有可能具有隨機行為的庫初始化種子的函數

def set_seeds(seed=SEED):
? ? os.environ['PYTHONHASHSEED'] = str(seed)
? ? random.seed(seed)
? ? tf.random.set_seed(seed)
? ? np.random.seed(seed)

第三步 激活 Tensorflow 確定性功能

def set_global_determinism(seed=SEED):
? ? set_seeds(seed=seed)

? ? os.environ['TF_DETERMINISTIC_OPS'] = '1'
? ? os.environ['TF_CUDNN_DETERMINISTIC'] = '1'
? ??
? ? tf.config.threading.set_inter_op_parallelism_threads(1)
? ? tf.config.threading.set_intra_op_parallelism_threads(1)

# Call the above function with seed value
set_global_determinism(seed=SEED)

總結

原文鏈接:https://blog.csdn.net/xu624735206/article/details/124999824

欄目分類
最近更新