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

