[英]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.