pytorch之object.grad.zero_()
生活随笔
收集整理的這篇文章主要介紹了
pytorch之object.grad.zero_()
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- object.grad.zero_()的意思是清0object的梯度值。
下面做個(gè)實(shí)驗(yàn)。
- 在默認(rèn)情況下,PyTorch會累積梯度,我們需要清除之前的值,假如不清0會出現(xiàn)什么現(xiàn)象,看下面的實(shí)驗(yàn)。
-
那么上面這個(gè)錯(cuò)誤結(jié)果是怎么來的呢?
PyTorch會累積梯度,tensor([ 0., 8., 16., 24., 32.]) = tensor([ 0., 4., 8., 12., 16.]) + tensor([ 0., 4., 8., 12., 16.])得到的結(jié)果; -
所以下面這段代碼的意思是迭代param時(shí)不需要構(gòu)建計(jì)算圖,并且迭代完成后就把param.grad清0,因?yàn)樵僖淮握{(diào)用sgd時(shí)就是下一個(gè)batch得到的param.grad,batch和batch是沒有關(guān)系的。
參考資料
總結(jié)
以上是生活随笔為你收集整理的pytorch之object.grad.zero_()的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器主板装w7系统死机,解决win7安
- 下一篇: 仿二手商城模板html,仿转转商城APP