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

關(guān)于pytorch求導(dǎo)總結(jié)(torch.autograd)

 更新時間:2023年06月14日 10:05:44   作者:不知名大學(xué)僧  
這篇文章主要介紹了關(guān)于pytorch求導(dǎo)總結(jié)(torch.autograd),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

1、Autograd 求導(dǎo)機(jī)制

我們在用神經(jīng)網(wǎng)絡(luò)求解PDE時, 經(jīng)常要用到輸出值對輸入變量(不是Weights和Biases)求導(dǎo);

例如在訓(xùn)練WGAN-GP 時, 也會用到網(wǎng)絡(luò)對輸入變量的求導(dǎo),pytorch中通過 Autograd 方法進(jìn)行求導(dǎo)

其求導(dǎo)規(guī)則如下:

1.1當(dāng)x為向量,y為一標(biāo)量時

通過autograd 計算的梯度為:

1.2先假設(shè)x,y為一維向量

其對應(yīng)的jacobi(雅可比)矩陣為

grad_outputs 是一個與因變量 y 的shape 一致的向量

在給定grad_outputs 后,通過Autograd 方法 計算的梯度如下:

1.3當(dāng) x 為1維向量,Y為2維向量

給出grad_outputs與Y的shape一致

Y 與x的jacobi矩陣

則 Y 對 x 的梯度:

1.4當(dāng) X ,Y均為2維向量時

???????

1.5當(dāng)XY為更高維度時

可以按照上述辦法轉(zhuǎn)化為低維度的求導(dǎo)

值得注意的是:

求導(dǎo)后的梯度shape總與自變量X保持一致對自變量求導(dǎo)的順序并不會影響結(jié)果,某自變量的梯度值會放到該自變量原來相同位置梯度是由每個自變量的導(dǎo)數(shù)值組成的向量,既有大小又有方向grad_outputs 與 因變量Y的shape一致,每一個參數(shù)相當(dāng)于對因變量中相同位置的y進(jìn)行一個加權(quán)。

2、pytorch求導(dǎo)方法

2.1在求導(dǎo)前需要對需要求導(dǎo)的自變量進(jìn)行聲明

2.2torch.autograd.gard()

grad =? autograd.grad( outputs, inputs, grad_outputs=None, retain_graph=None, ???create_graph=False, only_inputs=True, allow_unused=False )

參數(shù)解釋:

  • outputs:求導(dǎo)的因變量 Y
  • inputs : 求導(dǎo)自變量 X
  • grad_outputs:

當(dāng)outputs為標(biāo)量時,grad_outputs=None , 不需要寫,當(dāng)outputs 為向量,需要為其聲明一個與outputs相同shape的參數(shù)矩陣,該矩陣中的每個參數(shù)的作用是,對outputs中相同位置的y進(jìn)行一個加權(quán)。

不然會報錯

autograd.grad()返回的是元組數(shù)據(jù)類型,元組的長度與inputs長度相同,元組中每個單位的shape與相同位置的inputs相同

retain_graph:

1、當(dāng)求完一次梯度后默認(rèn)會把圖信息釋放掉,都會free掉計算圖中所有緩存的buffers,當(dāng)要連續(xù)進(jìn)行幾次求導(dǎo)時,可能會因為前面buffers不存在而報錯。

因為第二個梯度計算z對x的導(dǎo)數(shù),需要y對x的計算導(dǎo)數(shù)的緩存信息,但是在計算grad1后,保存信息被釋放,找不到了,因此報錯。

修改如下:

2、一般計算的最后一個梯度可以不需要保存計算圖信息,這樣在計算后可以及時釋放掉占用的內(nèi)存。

3、在pytorch中連續(xù)多次調(diào)用backward()也會出現(xiàn)這樣的問題,對中間的backwad(),需要保持計算圖信息

create_graph: 若要計算高階導(dǎo)數(shù),則必須選為True

求二階導(dǎo)方法如下:

allow_unused: 允許輸入變量不進(jìn)入計算

2.3torch.backward()

def backward(
??????????? ????????????gradient: Optional[Tensor] = None,
??????????? ????????????retain_graph: Any = None,
??????????? ????????????create_graph: Any = False,
??????????? ????????????inputs: Any = None) -> Any
??????????????????????????????????????????????? )

如果需要計算導(dǎo)數(shù),可以在tensor上直接調(diào)用.backward(),會返回該tensor所有自變量的導(dǎo)數(shù)。

通過name(自變量名).grad 可以獲得該自變量的梯度如果tensor是標(biāo)量,則backward()不需要指定任何參數(shù)如果tensor是向量,則backward()需要指定gradient一個與tensorshape相同的參數(shù)矩陣,即這里的gradient 同 grad_outputs 作用和形式完全一樣。

總結(jié)

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

相關(guān)文章

  • Python采集熱搜數(shù)據(jù)實現(xiàn)詳解

    Python采集熱搜數(shù)據(jù)實現(xiàn)詳解

    這篇文章主要為大家介紹了Python采集熱搜數(shù)據(jù)實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • [機(jī)器視覺]使用python自動識別驗證碼詳解

    [機(jī)器視覺]使用python自動識別驗證碼詳解

    這篇文章主要介紹了python自動識別驗證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Python使用turtle庫繪制小豬佩奇(實例代碼)

    Python使用turtle庫繪制小豬佩奇(實例代碼)

    這篇文章主要介紹了Python使用turtle庫繪制小豬佩奇,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Python使用plotly繪制數(shù)據(jù)圖表的方法

    Python使用plotly繪制數(shù)據(jù)圖表的方法

    本篇文章主要介紹了Python使用plotly繪制數(shù)據(jù)圖表的方法,實例分析了plotly繪制的技巧,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Python采集天天基金數(shù)據(jù)掌握最新基金動向

    Python采集天天基金數(shù)據(jù)掌握最新基金動向

    這篇文章主要介紹了Python采集天天基金數(shù)據(jù)掌握最新基金動向,本次案例實現(xiàn)流程為發(fā)送請求、獲取數(shù)據(jù)、解析數(shù)據(jù)、多頁爬取、保存數(shù)據(jù),接下來來看看具體的操作過程吧
    2022-01-01
  • OpenCV繪制圓角矩形的方法實例

    OpenCV繪制圓角矩形的方法實例

    我們在輪廓截取出來時一般需要是矩形的圖像,所以下面這篇文章主要給大家介紹了關(guān)于OpenCV繪制圓角矩形的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • python中l(wèi)xml.etree 和 ElementTree 的區(qū)別解析

    python中l(wèi)xml.etree 和 ElementTree 的區(qū)別解析

    lxml.etree 提供了更多的功能,例如 XPath、XSLT、Relax NG、 和 XML 模式支持,etree 對 Python unicode 字符串的想法與 ElementTree 不同,本文給大家介紹python中l(wèi)xml.etree 和 ElementTree 的區(qū)別,感興趣的朋友一起看看吧
    2024-01-01
  • 使用Python自定義創(chuàng)建的Log日志模塊

    使用Python自定義創(chuàng)建的Log日志模塊

    這篇文章主要介紹了使用Python自定義創(chuàng)建的Log日志模塊,日志文件是用于記錄系統(tǒng)操作事件的文件集合,可分為事件日志和消息日志。具有處理歷史數(shù)據(jù)、診斷問題的追蹤以及理解系統(tǒng)的活動等重要作用,需要的朋友可以參考下
    2023-07-07
  • python基于爬蟲+django,打造個性化API接口

    python基于爬蟲+django,打造個性化API接口

    這篇文章主要介紹了python基于爬蟲+django,打造個性化API接口的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Matplotlib自定義坐標(biāo)軸刻度的實現(xiàn)示例

    Matplotlib自定義坐標(biāo)軸刻度的實現(xiàn)示例

    這篇文章主要介紹了Matplotlib自定義坐標(biāo)軸刻度的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評論

蓝田县| 望谟县| 蛟河市| 桂东县| 汉阴县| 宁强县| 乌鲁木齐县| 文成县| 陆丰市| 崇阳县| 于都县| 五常市| 铁岭市| 饶阳县| 葵青区| 蒙自县| 赣州市| 孝义市| 宜州市| 汝南县| 永定县| 隆化县| 惠东县| 平山县| 横峰县| 昌图县| 米脂县| 拜泉县| 丹江口市| 易门县| 承德县| 竹溪县| 凯里市| 延庆县| 荣成市| 河北区| 肇源县| 镇雄县| 赣州市| 从化市| 南木林县|