簡體   English   中英

當我們在 PyTorch 中使用 zero_grad() 時,優化是如何完成的?

[英]how is the optmization done when we use zero_grad() in PyTorch?

zero_grad() 當我們想用大量數據集“保存”RAM 時使用方法。 這里已經有一個答案: Why do we need to call zero_grad() in PyTorch? .

梯度用於在反向傳播期間更新參數。 但是如果我們通過將梯度設置為 0 來刪除梯度,那么在反向傳播過程中如何進行優化呢? 有些模型我們使用了這種方法,但仍在進行優化,這怎么可能?

您不會“刪除漸變”,您只需清除上一次迭代的漸變緩存 此緩存存在的原因是易於實施特定方法,例如模擬大批量,而無需 memory 實際使用整個批次。

暫無
暫無

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

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