真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何解決torch.autograd.backward中的參數(shù)問題-創(chuàng)新互聯(lián)

這篇文章主要介紹了如何解決torch.autograd.backward中的參數(shù)問題,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、徐匯網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、徐匯網(wǎng)絡(luò)營銷、徐匯企業(yè)策劃、徐匯品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供徐匯建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

torch.autograd.backward(variables, grad_variables=None, retain_graph=None, create_graph=False)

給定圖的葉子節(jié)點(diǎn)variables, 計(jì)算圖中變量的梯度和。 計(jì)算圖可以通過鏈?zhǔn)椒▌t求導(dǎo)。如果variables中的任何一個(gè)variable是 非標(biāo)量(non-scalar)的,且requires_grad=True。那么此函數(shù)需要指定grad_variables,它的長度應(yīng)該和variables的長度匹配,里面保存了相關(guān)variable的梯度(對于不需要gradient tensor的variable,None是可取的)。

此函數(shù)累積leaf variables計(jì)算的梯度。你可能需要在調(diào)用此函數(shù)之前將leaf variable的梯度置零。

參數(shù):

variables(變量的序列) - 被求微分的葉子節(jié)點(diǎn),即 ys 。

grad_variables((張量,變量)的序列或無) - 對應(yīng)variable的梯度。僅當(dāng)variable不是標(biāo)量且需要求梯度的時(shí)候使用。

retain_graph(bool,可選) - 如果為False,則用于釋放計(jì)算grad的圖。請注意,在幾乎所有情況下,沒有必要將此選項(xiàng)設(shè)置為True,通??梢砸愿行У姆绞浇鉀Q。默認(rèn)值為create_graph的值。

create_graph(bool,可選) - 如果為True,則將構(gòu)造派生圖,允許計(jì)算更高階的派生產(chǎn)品。默認(rèn)為False。

我這里舉一個(gè)官方的例子

import torch
from torch.autograd import Variable
x = Variable(torch.ones(2, 2), requires_grad=True)
y = x + 2
z = y * y * 3
out = z.mean()
out.backward()#這里是默認(rèn)情況,相當(dāng)于out.backward(torch.Tensor([1.0]))
print(x.grad)

輸出結(jié)果是

Variable containing:
 4.5000 4.5000
 4.5000 4.5000
[torch.FloatTensor of size 2x2]

如何解決torch.autograd.backward中的參數(shù)問題

接著我們繼續(xù)

x = torch.randn(3)
x = Variable(x, requires_grad=True)

y = x * 2
while y.data.norm() < 1000:
  y = y * 2

gradients = torch.FloatTensor([0.1, 1.0, 0.0001])
y.backward(gradients)
print(x.grad)

輸出結(jié)果是

Variable containing:
 204.8000
 2048.0000
  0.2048
[torch.FloatTensor of size 3]

這里這個(gè)gradients為什么要是[0.1, 1.0, 0.0001]?

如果輸出的多個(gè)loss權(quán)重不同的話,例如有三個(gè)loss,一個(gè)是x loss,一個(gè)是y loss,一個(gè)是class loss。那么很明顯的不可能所有l(wèi)oss對結(jié)果影響程度都一樣,他們之間應(yīng)該有一個(gè)比例。那么比例這里指的就是[0.1, 1.0, 0.0001],這個(gè)問題中的loss對應(yīng)的就是上面說的y,那么這里的輸出就很好理解了dy/dx=0.1*dy1/dx+1.0*dy2/dx+0.0001*dy3/dx。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何解決torch.autograd.backward中的參數(shù)問題”這篇文章對大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


名稱欄目:如何解決torch.autograd.backward中的參數(shù)問題-創(chuàng)新互聯(lián)
路徑分享:http://weahome.cn/article/dejhgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部