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

pytorch中關(guān)于backward的幾個(gè)要點(diǎn)說(shuō)明

 更新時(shí)間:2023年02月21日 08:42:19   作者:老李今天學(xué)習(xí)了嗎  
這篇文章主要介紹了pytorch中關(guān)于backward的幾個(gè)要點(diǎn)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

pytorch中backward的2個(gè)要點(diǎn)

1. requires_grad

用pytorch定義一個(gè)網(wǎng)絡(luò)層,如果數(shù)據(jù)中加入requires_grad=True,那么對(duì)于這個(gè)變量而言,就有了屬于自己的導(dǎo)數(shù)(grad),如果這個(gè)數(shù)據(jù)是矩陣,那么他的grad是同樣大小的一個(gè)矩陣。

我們將requires_grad視為該變量的一個(gè)屬性,我們知道,我們?cè)诂F(xiàn)實(shí)生活中,或者說(shuō)在神經(jīng)網(wǎng)絡(luò)中,大部分的函數(shù)都是一階連續(xù)可微的,也就是說(shuō),他的梯度具有唯一性。requires_grad的存在非常合理。

2. scale才能有backward

scale是標(biāo)量的意思。

首先我們可用用如下語(yǔ)句查看等式中某個(gè)自變量的梯度。

print(x.grad, y.grad)

但是有個(gè)前提,我們必須要先對(duì)他的結(jié)果使用.backward()才能去查看,不然的話(huà),他的梯度會(huì)顯示為none。

非常需要注意的一點(diǎn)是,能夠使用.backward()的必須是標(biāo)量(scale),不然程序會(huì)報(bào)錯(cuò)。

結(jié)合實(shí)際的情況,我們看任何一個(gè)網(wǎng)絡(luò),使用backward的地方幾乎只有一個(gè),那就是loss.backward()。

首先loss肯定是一個(gè)標(biāo)量,無(wú)論是MSE還是交叉熵,也無(wú)論是否加上了正則項(xiàng),那都是求和之后的結(jié)果,也就是一個(gè)數(shù)值。這一點(diǎn)非常重要。

以下是我隨意寫(xiě)的一個(gè)網(wǎng)絡(luò)層,可以感受一下

import torch
import torch.nn as nn
class Linear(nn.Module):
? ? def __init__(self, inc, mult):
? ? ? ? super(Linear, self).__init__()
? ? ? ? self.intc = inc
? ? ? ? self.mult = mult
? ? def forward(self, input0):
? ? ? ? return torch.sum(torch.abs(input0*self.mult+self.intc))
def main():
? ? x = torch.tensor(1.0, requires_grad=True)
? ? y = torch.tensor(2.0,requires_grad=True)
? ? z = x**2+y
? ? p = z*2+x
? ? p.backward()
? ? print(z, x.grad, y.grad)
? ? A = torch.ones([3,3],requires_grad=True)
? ? print(A.requires_grad)
? ? f = Linear(1, -2)
? ? b = f(A)
? ? print(b)
? ? b.backward()
? ? print(A.grad)
if __name__ == '__main__':
? ? main()

pytorch中backward參數(shù)含義

1.標(biāo)量與矢量問(wèn)題

backward參數(shù)是否必須取決于因變量的個(gè)數(shù),從數(shù)據(jù)中表現(xiàn)為標(biāo)量和矢量;

  • 例如標(biāo)量時(shí)
  • y=一個(gè)明確的值
  • 矢量時(shí)
  • y=[y1,y2]

2.backward 參數(shù)計(jì)算公式

當(dāng)因變量公式不是一個(gè)標(biāo)量時(shí),需要顯式添加一個(gè)參數(shù)進(jìn)行計(jì)算,以pytorch文檔示例說(shuō)明:

import torch

a = torch.tensor([2., 3.], requires_grad=True)
b = torch.tensor([6., 4.], requires_grad=True)
Q = 3*a**3 - b**2

例如求解公式

external_grad = torch.tensor([1., 1.])
Q.backward(gradient=external_grad)

可以看到backward參數(shù)為[1,1],具體計(jì)算的含義,我們把Q公式拆分為標(biāo)量形式即:

backward參數(shù)為[1,1],計(jì)算公式為

3.autograd

torch.autograd是計(jì)算向量和雅可比公式的乘積的引擎:

其中J就是因變量與自變量的雅可比公式,v即backward中的參數(shù);類(lèi)比于第二節(jié)的例子可對(duì)應(yīng);

前向傳播得到數(shù)值后,利用此形式計(jì)算直接后向傳播計(jì)算出損失函數(shù)對(duì)應(yīng)各權(quán)值的梯度下降值

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python基礎(chǔ)詳解之郵件處理

    Python基礎(chǔ)詳解之郵件處理

    這篇文章主要介紹了Python基礎(chǔ)詳解之郵件處理,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Python調(diào)用.net動(dòng)態(tài)庫(kù)實(shí)現(xiàn)過(guò)程解析

    Python調(diào)用.net動(dòng)態(tài)庫(kù)實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Python調(diào)用.net動(dòng)態(tài)庫(kù)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python使用窮舉法求兩個(gè)數(shù)的最大公約數(shù)問(wèn)題

    Python使用窮舉法求兩個(gè)數(shù)的最大公約數(shù)問(wèn)題

    這篇文章主要介紹了Python使用窮舉法求兩個(gè)數(shù)的最大公約數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳細(xì)解讀Python中的json操作

    詳細(xì)解讀Python中的json操作

    json操作是最為基本的、最為常用的,Python自帶的json模塊就可以滿(mǎn)足大部分應(yīng)用場(chǎng)景,而且使用起來(lái)極為簡(jiǎn)單,下面這篇文章主要給大家介紹了關(guān)于Python中json操作的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Python基礎(chǔ)之?dāng)?shù)據(jù)類(lèi)型知識(shí)匯總

    Python基礎(chǔ)之?dāng)?shù)據(jù)類(lèi)型知識(shí)匯總

    今天帶大家復(fù)習(xí)一下Python基礎(chǔ)知識(shí),文中對(duì)數(shù)據(jù)類(lèi)型相關(guān)知識(shí)做了詳細(xì)的匯總,對(duì)剛?cè)腴T(mén)python的小伙伴很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • 詳解Python解決抓取內(nèi)容亂碼問(wèn)題(decode和encode解碼)

    詳解Python解決抓取內(nèi)容亂碼問(wèn)題(decode和encode解碼)

    這篇文章主要介紹了Python解決抓取內(nèi)容亂碼問(wèn)題(decode和encode解碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python線(xiàn)性回歸圖文實(shí)例詳解

    Python線(xiàn)性回歸圖文實(shí)例詳解

    用python進(jìn)行線(xiàn)性回歸分析非常方便,有現(xiàn)成的庫(kù)可以使用比如numpy.linalog.lstsq、scipy.stats.linregress、pandas.ols等,這篇文章主要給大家介紹了關(guān)于Python線(xiàn)性回歸的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • 關(guān)于Keras模型可視化教程及關(guān)鍵問(wèn)題的解決

    關(guān)于Keras模型可視化教程及關(guān)鍵問(wèn)題的解決

    今天小編就為大家分享一篇關(guān)于Keras模型可視化教程及關(guān)鍵問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • 情人節(jié)快樂(lè)! python繪制漂亮玫瑰

    情人節(jié)快樂(lè)! python繪制漂亮玫瑰

    情人節(jié)快樂(lè)! 這篇文章主要教大家如何用python繪制漂亮玫瑰花,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Python壓縮解壓縮zip文件及破解zip文件密碼的方法

    Python壓縮解壓縮zip文件及破解zip文件密碼的方法

    這篇文章主要介紹了Python壓縮解壓縮zip文件及嘗試破解zip文件密碼的方法,給出了一個(gè)使用zipfile模塊的簡(jiǎn)單示例,需要的朋友可以參考下
    2015-11-11

最新評(píng)論

叶城县| 彝良县| 溆浦县| 延安市| 馆陶县| 盖州市| 金溪县| 来凤县| 扎赉特旗| 平陆县| 台东县| 喜德县| 通山县| 新干县| 乐亭县| 林周县| 丰镇市| 儋州市| 衡东县| 库车县| 龙岩市| 潞西市| 勃利县| 平江县| 青海省| 莱州市| 健康| 淅川县| 昂仁县| 沾益县| 敦煌市| 射阳县| 濉溪县| 贵南县| 涿州市| 翼城县| 广饶县| 崇义县| 怀远县| 恩施市| 邓州市|