怎么在Pytorch中實(shí)現(xiàn)反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)-創(chuàng)新互聯(lián)

怎么在Pytorch中實(shí)現(xiàn)反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)公司 - 四川雅安電信機(jī)房,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),四川雅安電信機(jī)房,西南服務(wù)器托管,四川/成都大帶寬,機(jī)柜大帶寬,四川老牌IDC服務(wù)商

方法一:手動(dòng)計(jì)算變量的梯度,然后更新梯度

import torch
from torch.autograd import Variable
# 定義參數(shù)
w1 = Variable(torch.FloatTensor([1,2,3]),requires_grad = True)
# 定義輸出
d = torch.mean(w1)
# 反向求導(dǎo)
d.backward()
# 定義學(xué)習(xí)率等參數(shù)
lr = 0.001
# 手動(dòng)更新參數(shù)
w1.data.zero_() # BP求導(dǎo)更新參數(shù)之前,需先對導(dǎo)數(shù)置0
w1.data.sub_(lr*w1.grad.data)

一個(gè)網(wǎng)絡(luò)中通常有很多變量,如果按照上述的方法手動(dòng)求導(dǎo),然后更新參數(shù),是很麻煩的,這個(gè)時(shí)候可以調(diào)用torch.optim

方法二:使用torch.optim

import torch
from torch.autograd import Variable
import torch.nn as nn
import torch.optim as optim
# 這里假設(shè)我們定義了一個(gè)網(wǎng)絡(luò),為net
steps = 10000
# 定義一個(gè)optim對象
optimizer = optim.SGD(net.parameters(), lr = 0.01)
# 在for循環(huán)中更新參數(shù)
for i in range(steps):
 optimizer.zero_grad() # 對網(wǎng)絡(luò)中參數(shù)當(dāng)前的導(dǎo)數(shù)置0
 output = net(input) # 網(wǎng)絡(luò)前向計(jì)算
 loss = criterion(output, target) # 計(jì)算損失
 loss.backward() # 得到模型中參數(shù)對當(dāng)前輸入的梯度
 optimizer.step() # 更新參數(shù)

注意:torch.optim只用于參數(shù)更新和對參數(shù)的梯度置0,不能計(jì)算參數(shù)的梯度,在使用torch.optim進(jìn)行參數(shù)更新之前,需要寫前向與反向傳播求導(dǎo)的代碼

pytorch的優(yōu)點(diǎn)

1.PyTorch是相當(dāng)簡潔且高效快速的框架;2.設(shè)計(jì)追求最少的封裝;3.設(shè)計(jì)符合人類思維,它讓用戶盡可能地專注于實(shí)現(xiàn)自己的想法;4.與google的Tensorflow類似,F(xiàn)AIR的支持足以確保PyTorch獲得持續(xù)的開發(fā)更新;5.PyTorch作者親自維護(hù)的論壇 供用戶交流和求教問題6.入門簡單

關(guān)于怎么在Pytorch中實(shí)現(xiàn)反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道了解更多相關(guān)知識。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

名稱欄目:怎么在Pytorch中實(shí)現(xiàn)反向求導(dǎo)更新網(wǎng)絡(luò)參數(shù)-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://muchs.cn/article26/dpeejg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站建設(shè)、建站公司、網(wǎng)站導(dǎo)航、App開發(fā)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站