pytorch中如何設(shè)置隨機種子
pytorch設(shè)置隨機種子
pytorch設(shè)置隨機種子 - 保證復(fù)現(xiàn)模型所有的訓(xùn)練過程
在使用 PyTorch 時,如果希望通過設(shè)置隨機數(shù)種子,在 GPU 或 CPU 上固定每一次的訓(xùn)練結(jié)果,則需要在程序執(zhí)行的開始處添加以下代碼:
def seed_everything():
'''
設(shè)置整個開發(fā)環(huán)境的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 = Truepytorch/tensorflow設(shè)置隨機種子 ,保證結(jié)果復(fù)現(xiàn)
Pytorch隨機種子設(shè)置
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設(shè)置隨機種子
第一步 僅導(dǎo)入設(shè)置種子和初始化種子值所需的那些庫
import tensorflow as tf import os import numpy as np import random SEED = 0
第二步 為所有可能具有隨機行為的庫初始化種子的函數(shù)
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)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用微信SDK實現(xiàn)的微信支付功能示例
這篇文章主要介紹了Python使用微信SDK實現(xiàn)的微信支付功能,結(jié)合實例形式分析了Python調(diào)用微信SDK接口實現(xiàn)微信支付功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
詳解Python實現(xiàn)按任意鍵繼續(xù)/退出的功能
在學(xué)Python時在總想實現(xiàn)一個按任意鍵繼續(xù)/退出的程序(受.bat毒害), 奈何一直沒有寫,今天抽時間寫出來了,下面分享給大家,有需要的可以參考借鑒。2016-08-08
Django獲取該數(shù)據(jù)的上一條和下一條方法
今天小編就為大家分享一篇Django獲取該數(shù)據(jù)的上一條和下一條方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
優(yōu)化Python代碼使其加快作用域內(nèi)的查找
這篇文章主要介紹了優(yōu)化Python代碼使其加快作用域內(nèi)的搜索,文中介紹了CPython相關(guān)的C代碼來對查找功能進(jìn)行優(yōu)化,加快搜索的速度,需要的朋友可以參考下2015-03-03

