校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PyTorch 如何設置隨機數種子使結果可復現

PyTorch 如何設置隨機數種子使結果可復現

熱門標簽:陜西金融外呼系統 哈爾濱ai外呼系統定制 海南400電話如何申請 公司電話機器人 騰訊外呼線路 唐山智能外呼系統一般多少錢 白銀外呼系統 激戰2地圖標注 廣告地圖標注app

由于在模型訓練的過程中存在大量的隨機操作,使得對于同一份代碼,重復運行后得到的結果不一致。

因此,為了得到可重復的實驗結果,我們需要對隨機數生成器設置一個固定的種子。

CUDNN

cudnn中對卷積操作進行了優化,犧牲了精度來換取計算效率。如果需要保證可重復性,可以使用如下設置:

from torch.backends import cudnn
cudnn.benchmark = False            # if benchmark=True, deterministic will be False
cudnn.deterministic = True

不過實際上這個設置對精度影響不大,僅僅是小數點后幾位的差別。所以如果不是對精度要求極高,其實不太建議修改,因為會使計算效率降低。

Pytorch

torch.manual_seed(seed)            # 為CPU設置隨機種子
torch.cuda.manual_seed(seed)       # 為當前GPU設置隨機種子
torch.cuda.manual_seed_all(seed)   # 為所有GPU設置隨機種子

Python Numpy

如果讀取數據的過程采用了隨機預處理(如RandomCrop、RandomHorizontalFlip等),那么對python、numpy的隨機數生成器也需要設置種子。

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

Dataloader

如果dataloader采用了多線程(num_workers > 1), 那么由于讀取數據的順序不同,最終運行結果也會有差異。

也就是說,改變num_workers參數,也會對實驗結果產生影響。

目前暫時沒有發現解決這個問題的方法,但是只要固定num_workers數目(線程數)不變,基本上也能夠重復實驗結果。

補充:pytorch 固定隨機數種子踩過的坑

1.初步固定

 def setup_seed(seed):
     torch.manual_seed(seed)
     torch.cuda.manual_seed_all(seed)
     torch.cuda.manual_seed(seed)
     np.random.seed(seed)
     random.seed(seed)
     torch.backends.cudnn.deterministic = True
     torch.backends.cudnn.enabled = False
     torch.backends.cudnn.benchmark = False
     #torch.backends.cudnn.benchmark = True #for accelerating the running
 setup_seed(2019)

2.繼續添加如下代碼:

tensor_dataset = ImageList(opt.training_list,transform)
def _init_fn(worker_id): 
    random.seed(10 + worker_id)
    np.random.seed(10 + worker_id)
    torch.manual_seed(10 + worker_id)
    torch.cuda.manual_seed(10 + worker_id)
    torch.cuda.manual_seed_all(10 + worker_id)
dataloader = DataLoader(tensor_dataset,                        
                    batch_size=opt.batchSize,     
                    shuffle=True,     
                    num_workers=opt.workers,
                    worker_init_fn=_init_fn)

3.在上面的操作之后發現加載的數據多次試驗大部分一致了

但是仍然有些數據是不一致的,后來發現是pytorch版本的問題,將原先的0.3.1版本升級到1.1.0版本,問題解決

4.按照上面的操作后雖然解決了問題

但是由于將cudnn.benchmark設置為False,運行速度降低到原來的1/3,所以繼續探索,最終解決方案是把第1步變為如下,同時將該部分代碼盡可能放在主程序最開始的部分,例如:

import torch
import torch.nn as nn
from torch.nn import init
import pdb
import torch.nn.parallel
import torch.nn.functional as F
import torch.backends.cudnn as cudnn
import torch.optim as optim
import torch.utils.data
from torch.utils.data import DataLoader, Dataset
import sys
gpu_id = "3,2"
os.environ["CUDA_VISIBLE_DEVICES"] = gpu_id
print('GPU: ',gpu_id)
def setup_seed(seed):
     torch.manual_seed(seed)
     torch.cuda.manual_seed_all(seed)
     torch.cuda.manual_seed(seed)
     np.random.seed(seed)
     random.seed(seed)
     cudnn.deterministic = True
     #cudnn.benchmark = False
     #cudnn.enabled = False

setup_seed(2019)

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 簡述python&pytorch 隨機種子的實現
  • Pytorch在dataloader類中設置shuffle的隨機數種子方式
  • pytorch通過訓練結果的復現設置隨機種子

標簽:益陽 惠州 鷹潭 四川 常德 黔西 黑龍江 上海

巨人網絡通訊聲明:本文標題《PyTorch 如何設置隨機數種子使結果可復現》,本文關鍵詞  PyTorch,如何,設置,隨機數,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PyTorch 如何設置隨機數種子使結果可復現》相關的同類信息!
  • 本頁收集關于PyTorch 如何設置隨機數種子使結果可復現的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产精品久久久久久久蜜臀| 亚洲欧洲成人av每日更新| 一区二区三区不卡视频在线观看| 韩国一区二区三区| 久久久99久久精品欧美| 国产成人小视频| 亚洲色图.com| 欧美日韩国产一区二区三区地区| 亚洲综合免费观看高清完整版| 欧美午夜在线观看| 精品一区在线看| 国产精品乱码久久久久久| 欧美亚洲国产怡红院影院| 久久国产欧美日韩精品| 亚洲精品欧美激情| 51午夜精品国产| 国产成人丝袜美腿| 青青草97国产精品免费观看无弹窗版 | 亚洲欧美一区二区三区极速播放| 欧美日韩中文精品| av资源站一区| 国产乱子伦视频一区二区三区| 玉米视频成人免费看| 国产欧美日产一区| 久久午夜色播影院免费高清| 欧美视频一二三区| 欧美日韩视频在线第一区 | 波多野结衣精品在线| 日韩主播视频在线| 伊人夜夜躁av伊人久久| 国产亚洲精品aa午夜观看| 91精品国产美女浴室洗澡无遮挡| 91免费版在线| 欧美艳星brazzers| 欧美日韩黄色影视| 91精品国产综合久久精品app| 在线观看欧美黄色| 91精品国产色综合久久不卡蜜臀| 欧美亚洲日本国产| 日韩欧美国产不卡| 久久久久久久精| 亚洲欧美日韩中文字幕一区二区三区| 日韩美一区二区三区| 欧美视频三区在线播放| 免费高清视频精品| 又紧又大又爽精品一区二区| 亚洲免费观看高清完整版在线观看| 亚洲欧洲综合另类在线| 亚洲电影激情视频网站| 青青草91视频| 国产成人在线视频免费播放| 国产一区二区女| 在线免费一区三区| 久久综合久久鬼色中文字| 国产精品卡一卡二| 视频精品一区二区| www.久久精品| 久久综合国产精品| 午夜精品久久久久久久蜜桃app | 国产日产欧产精品推荐色 | 成人免费一区二区三区在线观看| 亚洲精品视频在线观看免费| 久久成人免费网站| 欧美丰满少妇xxxxx高潮对白| 国产亚洲欧洲997久久综合| 日产欧产美韩系列久久99| www.av精品| 亚洲欧洲日韩av| 成人做爰69片免费看网站| 久久亚洲综合av| 六月丁香婷婷久久| 精品裸体舞一区二区三区| 三级一区在线视频先锋| 在线免费不卡电影| 午夜精品福利一区二区三区av| 99久久99久久精品国产片果冻| 久久久久久久久久久电影| 国产一区二区视频在线播放| 久久亚洲精品国产精品紫薇| 久久精工是国产品牌吗| 久久综合色8888| 国产成人一区二区精品非洲| 国产精品你懂的在线| 91在线云播放| 日韩高清在线观看| 精品国产电影一区二区| 成人免费视频播放| 一区二区三区在线影院| 欧美一区二区播放| 成人午夜激情影院| 亚洲va国产va欧美va观看| 欧美大片免费久久精品三p| 国产精品影音先锋| 一区二区三区中文在线| 精品国产乱码久久久久久影片| 国产凹凸在线观看一区二区| 亚洲成人中文在线| 国产人伦精品一区二区| 日韩午夜激情视频| 91麻豆文化传媒在线观看| 国产精品88av| 毛片一区二区三区| 亚洲精品视频在线| 中文字幕精品一区二区三区精品| 在线电影一区二区三区| 99精品视频免费在线观看| 国产精品99久久久久久有的能看 | hitomi一区二区三区精品| 精品国产一区二区三区不卡 | 在线欧美一区二区| 色视频一区二区| av不卡一区二区三区| 成人一道本在线| 国产白丝精品91爽爽久久| 美美哒免费高清在线观看视频一区二区 | 国产福利电影一区二区三区| 蜜臀av一区二区三区| 天天色综合天天| 美国av一区二区| 国产精品18久久久久久久久久久久 | 亚洲视频在线一区二区| 中文字幕在线观看不卡| 樱花影视一区二区| 亚洲一区影音先锋| 久久机这里只有精品| 国产在线精品不卡| 91在线观看地址| 日本丶国产丶欧美色综合| 欧美精品v国产精品v日韩精品| 欧美丝袜丝交足nylons| 精品视频资源站| 久久影视一区二区| 亚洲一区在线观看视频| 国产一区二区三区电影在线观看 | 国产成人在线网站| 91国偷自产一区二区三区观看| 欧美猛男男办公室激情| 2024国产精品| 日韩国产精品久久久久久亚洲| 国产精品一区专区| 欧美美女黄视频| 国产精品国产三级国产普通话三级| 国产精品久久久久天堂| 日本在线不卡视频| 在线观看日韩电影| 国产精品久久久久久久久免费桃花| 亚洲一二三四在线观看| a级精品国产片在线观看| 亚洲精品一线二线三线| 免费观看日韩av| 色天天综合久久久久综合片| 国产欧美日产一区| 国产美女一区二区三区| 欧美肥胖老妇做爰| 亚洲一区二区三区在线| 91视频观看免费| 国产精品高清亚洲| 色综合天天综合| 一区二区三区四区亚洲| 99精品视频在线播放观看| 成人免费在线播放视频| 91香蕉视频污| 亚洲国产综合在线| 欧美日韩国产高清一区二区三区| 亚洲.国产.中文慕字在线| 欧美巨大另类极品videosbest | 91精品国产综合久久久久久久 | 欧美成人激情免费网| 亚洲久本草在线中文字幕| 99久久精品免费看国产| 亚洲黄色av一区| 欧美三级电影网站| 亚洲综合视频在线| 欧美一区二区成人| 不卡的电影网站| 午夜精品久久久久久久蜜桃app| 精品理论电影在线观看| 99久久精品一区| 日韩av不卡一区二区| 国产精品国产自产拍高清av| 欧美体内she精视频| 成人黄色在线看| 午夜不卡av在线| 国产精品无遮挡| 亚洲精品一区二区三区99| 色狠狠色狠狠综合| 成人午夜看片网址| 精品在线观看视频| 日本aⅴ精品一区二区三区| 《视频一区视频二区| 国产亚洲va综合人人澡精品| 欧美男男青年gay1069videost| 91网上在线视频| 波多野结衣中文一区| 国产69精品久久久久毛片| 国产精品一区二区三区四区| 午夜视频在线观看一区二区 | 欧洲精品一区二区| 91丨porny丨最新| 91片在线免费观看|