最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyTorch中model.zero_grad()和optimizer.zero_grad()用法

 更新時間:2020年06月24日 11:39:10   作者:血雨腥風霜  
這篇文章主要介紹了PyTorch中model.zero_grad()和optimizer.zero_grad()用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

廢話不多說,直接上代碼吧~

model.zero_grad()
optimizer.zero_grad()

首先,這兩種方式都是把模型中參數的梯度設為0

當optimizer = optim.Optimizer(net.parameters())時,二者等效,其中Optimizer可以是Adam、SGD等優(yōu)化器

def zero_grad(self):
 """Sets gradients of all model parameters to zero."""
 for p in self.parameters():
  if p.grad is not None:
  p.grad.data.zero_()

補充知識:Pytorch中的optimizer.zero_grad和loss和net.backward和optimizer.step的理解

引言

一般訓練神經網絡,總是逃不開optimizer.zero_grad之后是loss(后面有的時候還會寫forward,看你網絡怎么寫了)之后是是net.backward之后是optimizer.step的這個過程。

real_a, real_b = batch[0].to(device), batch[1].to(device)

fake_b = net_g(real_a)
optimizer_d.zero_grad()

# 判別器對虛假數據進行訓練
fake_ab = torch.cat((real_a, fake_b), 1)
pred_fake = net_d.forward(fake_ab.detach())
loss_d_fake = criterionGAN(pred_fake, False)

# 判別器對真實數據進行訓練
real_ab = torch.cat((real_a, real_b), 1)
pred_real = net_d.forward(real_ab)
loss_d_real = criterionGAN(pred_real, True)

# 判別器損失
loss_d = (loss_d_fake + loss_d_real) * 0.5

loss_d.backward()
optimizer_d.step()

上面這是一段cGAN的判別器訓練過程。標題中所涉及到的這些方法,其實整個神經網絡的參數更新過程(特別是反向傳播),具體是怎么操作的,我們一起來探討一下。

參數更新和反向傳播

上圖為一個簡單的梯度下降示意圖。比如以SGD為例,是算一個batch計算一次梯度,然后進行一次梯度更新。這里梯度值就是對應偏導數的計算結果。顯然,我們進行下一次batch梯度計算的時候,前一個batch的梯度計算結果,沒有保留的必要了。所以在下一次梯度更新的時候,先使用optimizer.zero_grad把梯度信息設置為0。

我們使用loss來定義損失函數,是要確定優(yōu)化的目標是什么,然后以目標為頭,才可以進行鏈式法則和反向傳播。

調用loss.backward方法時候,Pytorch的autograd就會自動沿著計算圖反向傳播,計算每一個葉子節(jié)點的梯度(如果某一個變量是由用戶創(chuàng)建的,則它為葉子節(jié)點)。使用該方法,可以計算鏈式法則求導之后計算的結果值。

optimizer.step用來更新參數,就是圖片中下半部分的w和b的參數更新操作。

以上這篇PyTorch中model.zero_grad()和optimizer.zero_grad()用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 用Python寫飛機大戰(zhàn)游戲之pygame入門(4):獲取鼠標的位置及運動

    用Python寫飛機大戰(zhàn)游戲之pygame入門(4):獲取鼠標的位置及運動

    這篇文章主要介紹了用Python寫飛機大戰(zhàn)游戲之pygame入門(4):獲取鼠標的位置及運動,需要的朋友可以參考下
    2015-11-11
  • python密碼學文件解密實現教程

    python密碼學文件解密實現教程

    這篇文章主要為大家介紹了python密碼學文件解密實現教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • django注冊用郵箱發(fā)送驗證碼的實現

    django注冊用郵箱發(fā)送驗證碼的實現

    這篇文章主要介紹了django注冊用郵箱發(fā)送驗證碼的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 深入了解python的函數參數

    深入了解python的函數參數

    這篇文章主要為大家介紹了python的函數參數,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python單鏈路性能測試實踐

    python單鏈路性能測試實踐

    這篇文章主要為大家介紹了python單鏈路性能測試實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python的版本

    ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python的版本

    這篇文章主要給大家介紹了關于ubuntu?20.04系統(tǒng)下如何切換gcc/g++/python版本的相關資料,文中通過代碼介紹的非常詳細,對大家學習或者使用ubuntu具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-12-12
  • python常用數據結構元組詳解

    python常用數據結構元組詳解

    這篇文章主要介紹了python常用數據結構元組詳解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • Python 實例進階之預測房價走勢

    Python 實例進階之預測房價走勢

    買房應該是大多數都會要面臨的一個選擇,當前經濟和政策背景下,未來房價會漲還是跌?這是很多人都關心的一個話題。今天分享的這篇文章,以波士頓的房地產市場為例,根據低收入人群比例、老師學生數量等特征,利用 Python 進行了預測,給大家做一個參考
    2021-11-11
  • 最好的Python DateTime 庫之 Pendulum 長篇解析

    最好的Python DateTime 庫之 Pendulum 長篇解析

    datetime 模塊是 Python 中最重要的內置模塊之一,它為實際編程問題提供許多開箱即用的解決方案,非常靈活和強大。例如,timedelta 是我最喜歡的工具之一
    2021-11-11
  • Python for循環(huán)中的陷阱詳解

    Python for循環(huán)中的陷阱詳解

    這篇文章主要給大家介紹了關于Python for循環(huán)中陷阱的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07

最新評論

庆安县| 廊坊市| 内江市| 龙江县| 隆林| 清镇市| 台湾省| 永修县| 甘德县| 甘泉县| 清河县| 古田县| 长治县| 长寿区| 廉江市| 九台市| 全南县| 富宁县| 昌黎县| 广丰县| 类乌齐县| 徐水县| 新绛县| 贞丰县| 册亨县| 丹阳市| 岱山县| 东方市| 临湘市| 浪卡子县| 丰镇市| 永兴县| 龙泉市| 安仁县| 临洮县| 河东区| 平顶山市| 梁山县| 九江市| 台东市| 余姚市|