最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch固定隨機(jī)數(shù)種子的方法小結(jié)

 更新時間:2023年12月08日 11:15:18   作者:lgc0208  
在對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練時,有時候會存在對訓(xùn)練過程進(jìn)行復(fù)現(xiàn)的需求,然而,每次運(yùn)行時 Pytorch、Numpy 中的隨機(jī)性將使得該目的變得困難重重,基于此,本文記錄了 Pytorch 中的固定隨機(jī)數(shù)種子的方法,需要的朋友可以參考下

引言

在對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練時,有時候會存在對訓(xùn)練過程進(jìn)行復(fù)現(xiàn)的需求。然而,每次運(yùn)行時 Pytorch、Numpy 中的隨機(jī)性將使得該目的變得困難重重。在程序運(yùn)行前固定所有隨機(jī)數(shù)的種子有望解決這一問題?;诖耍疚挠涗浟?Pytorch 中的固定隨機(jī)數(shù)種子的方法。

在使用 Pytorch 對模型進(jìn)行訓(xùn)練時,通常涉及到隨機(jī)數(shù)的模塊包括:Python、Pytorch、Numpy、Cudnn。因此,在開始訓(xùn)練前,需要針對這些涉及隨機(jī)數(shù)的模塊進(jìn)行隨機(jī)數(shù)種子的固定。

1. Python

Python 本身涉及到的隨機(jī)性主要是 Python 自帶的 random 庫隨機(jī)化和 Hash 隨機(jī)化問題,需要通過 os 庫對其進(jìn)行限制:

import os, random
random.seed(seed)
os.environ['PYTHONHASHSEED'] = str(seed)

2. Numpy

在使用 Numpy 庫取隨機(jī)數(shù)時,需要對其隨機(jī)數(shù)種子進(jìn)行限制:

import numpy as np
np.random.seed(seed)

3. Pytorch

當(dāng) Pytorch 使用 CPU 進(jìn)行運(yùn)算時,需要設(shè)定 CPU 支撐下的 Pytorch 隨機(jī)數(shù)種子:

import torch
torch.manual_seed(seed)

當(dāng) Pytorch 使用 GPU 進(jìn)行運(yùn)算時,需要設(shè)定 GPU 支撐下的 Pytorch 隨機(jī)數(shù)種子:

import torch
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed) # 使用多 GPU 時使用

需要特別注意的是:目前很多博客和知乎回答提出 torch.cuda.manual_seed(seed) 和 torch.cuda.manual_seed_all(seed) 具有相同的作用。這個結(jié)論需要注意 Pytorch 版本。在筆者所用的 Pytorch 2.1 版本下,這兩個函數(shù)的作用完全不同。參考官方文檔:torch.cuda.manual_seed 和 torch.cuda.manual_seed_all(seed)

當(dāng) Pytorch 使用 Cudnn 進(jìn)行加速運(yùn)算時,還需要限制 Cudnn 在加速過程中涉及到的隨機(jī)策略:

import torch
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False

總結(jié)

基于上述庫的固定隨機(jī)數(shù)方法總結(jié)為:

def set_random_seed(seed: int) -> None:
	random.seed(seed)
	os.environ['PYTHONHASHSEED'] = str(seed)
	np.random.seed(seed)
	torch.manual_seed(seed)
	torch.cuda.manual_seed_all(seed)
	torch.backends.cudnn.benchmark = False
	torch.backends.cudnn.deterministic = True

seed = 114514
set_torch_seed(seed)

如果在實(shí)踐中還調(diào)用了其他涉及隨機(jī)性的第三方庫,則需要根據(jù)上述思路對該固定隨機(jī)數(shù)方法進(jìn)行動態(tài)補(bǔ)充。

以上就是Pytorch固定隨機(jī)數(shù)種子的方法小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Pytorch固定隨機(jī)數(shù)種子的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談Python的字典鍵名可以是哪些類型

    淺談Python的字典鍵名可以是哪些類型

    本文主要介紹了Python的字典鍵名可以是哪些類型,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Python新手如何進(jìn)行閉包時綁定變量操作

    Python新手如何進(jìn)行閉包時綁定變量操作

    在本篇文章里小編給大家分享的是關(guān)于Python新閉包時綁定變量實(shí)例,有興趣的朋友們可以參考下。
    2020-05-05
  • Python學(xué)習(xí)之函數(shù) def

    Python學(xué)習(xí)之函數(shù) def

    這篇文章主要介紹了Python的函數(shù) def,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • 如何使用python的ctypes調(diào)用醫(yī)保中心的dll動態(tài)庫下載醫(yī)保中心的賬單

    如何使用python的ctypes調(diào)用醫(yī)保中心的dll動態(tài)庫下載醫(yī)保中心的賬單

    這篇文章主要介紹了如何使用python的ctypes調(diào)用醫(yī)保中心的dll動態(tài)庫下載醫(yī)保中心的賬單,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Python格式化文本段落之textwrap庫

    Python格式化文本段落之textwrap庫

    這篇文章主要介紹了Python格式化文本段落之textwrap庫,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很大的幫助喲,需要的朋友可以參考下
    2021-05-05
  • 解決pyshp UnicodeDecodeError的問題

    解決pyshp UnicodeDecodeError的問題

    今天小編就為大家分享一篇解決pyshp UnicodeDecodeError的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 一文詳解如何在Python中使用Requests庫

    一文詳解如何在Python中使用Requests庫

    這篇文章主要介紹了如何在Python中使用Requests庫的相關(guān)資料,Requests庫是Python中常用的第三方庫,用于簡化HTTP請求的發(fā)送和響應(yīng)處理,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • python3使用pandas獲取股票數(shù)據(jù)的方法

    python3使用pandas獲取股票數(shù)據(jù)的方法

    今天小編就為大家分享一篇python3使用pandas獲取股票數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python實(shí)現(xiàn)字符串中某個字母的替代功能

    Python實(shí)現(xiàn)字符串中某個字母的替代功能

    小編想實(shí)現(xiàn)這樣一個功能:將輸入字符串中的字母 “i” 變成字母 “p”。想著很簡單,怎么實(shí)現(xiàn)呢?下面小編給大家?guī)砹薖ython實(shí)現(xiàn)字符串中某個字母的替代功能,感興趣的朋友一起看看吧
    2019-10-10
  • 修改默認(rèn)的pip版本為對應(yīng)python2.7的方法

    修改默認(rèn)的pip版本為對應(yīng)python2.7的方法

    今天小編就為大家分享一篇修改默認(rèn)的pip版本為對應(yīng)python2.7的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論

固镇县| 庆云县| 翁牛特旗| 广安市| 乌拉特前旗| 安康市| 玛多县| 安岳县| 庆云县| 五原县| 靖远县| 长兴县| 长垣县| 公主岭市| 乌兰浩特市| 英吉沙县| 文成县| 彩票| 内黄县| 台湾省| 武功县| 昔阳县| 巴彦县| 湟中县| 会同县| 女性| 四川省| 玛多县| 平乐县| 台南县| 宝坻区| 郯城县| 三江| 玉屏| 长顺县| 礼泉县| 盘山县| 盐山县| 南靖县| 胶州市| 大埔县|