pytorch中如何設置隨機種子
更新時間:2022年12月13日 11:03:50 作者:大蝦飛哥哥
這篇文章主要介紹了pytorch中如何設置隨機種子,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
pytorch設置隨機種子
pytorch設置隨機種子 - 保證復現(xiàn)模型所有的訓練過程
在使用 PyTorch 時,如果希望通過設置隨機數種子,在 GPU 或 CPU 上固定每一次的訓練結果,則需要在程序執(zhí)行的開始處添加以下代碼:
def seed_everything(): ''' 設置整個開發(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 = True
pytorch/tensorflow設置隨機種子 ,保證結果復現(xiàn)
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)
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python常用數據庫接口sqlite3和MySQLdb學習指南
在本章節(jié)中,我們將學習 Python 中常用的數據庫接口,包括 sqlite3用于SQLite數據庫和MySQLdb用于 MySQL 數據庫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06