簡體   English   中英

PyTorch中的再現性和性能

[英]Reproducibility and performance in PyTorch

文件說明:

確定性模式可能會對性能產生影響,具體取決於您的型號。

我的問題是,這里的表現是什么意思。 處理速度或模型質量(即最小損失)? 換句話說,當設置手動種子並使模型以確定的方式執行時,是否會導致更長的訓練時間,直到發現最小的損失,或者最小的損失是否比模型不確定時更差?

為了完整起見,我通過設置所有這些屬性手動使模型具有確定性:

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

性能指運行時間; CuDNN有幾種實現方式,當cudnn.deterministic設置為true時,你告訴CuDNN你只需要確定性實現(或我們認為它們是什么)。 簡而言之,當您執行此操作時,在饋送相同輸入時,您應該在同一系統上的CPU或GPU上獲得相同的結果 為什么會影響性能? CuDNN使用啟發式方法來選擇實現。 所以,它實際上取決於你的模型CuDNN將如何表現; 選擇它是確定性的可能會影響運行時,因為它們可能已經,更快的方式是在同一個運行點選擇它們。


關於你的片段,我做了精確的播種,它在100多個DL實驗中一直運行良好(在再現性方面)。

在此上下文中,“性能”指的是運行時

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM