pytorch以及tensorflow設置隨機數種子seed


首先設置任意種子:

 SEED=666

 

對於pytorch

torch.manual_seed(SEED)
torch.cuda.manual_seed_all(SEED)
np.random.seed(SEED)
random.seed(SEED)
torch.backends.cudnn.deterministic = True

 

tensorflow在使用gpu時由於cudnn中分配GPU多線程的隨機問題,復現結果需要NVIDIA官方的一個tensorflow gpu庫,支持tf版本1.14-2.x(參考 https://github.com/NVIDIA/framework-determinism

先shell安裝庫:

pip install tensorflow-determinism

對於tensorflow 1.14 或 1.15:

from tfdeterminism import patch
patch()
os.environ['PYTHONHASHSEED']=str(SEED)
random.seed(SEED)
np.random.seed(SEED)
tf.set_random_seed(SEED)

對於tensorflow 2.0:

from tfdeterminism import patch
patch()
os.environ['PYTHONHASHSEED']=str(SEED)
random.seed(SEED)
np.random.seed(SEED)
tf.random.set_seed(SEED)

對於tensorflow 2.4:

os.environ['TF_DETERMINISTIC_OPS'] = '1'
os.environ['PYTHONHASHSEED']=str(SEED)
random.seed(SEED)
np.random.seed(SEED)
tf.random.set_seed(SEED)

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM