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

在pytorch中對(duì)非葉節(jié)點(diǎn)的變量計(jì)算梯度實(shí)例

 更新時(shí)間:2020年01月10日 15:39:20   作者:FesianXu  
今天小編就為大家分享一篇在pytorch中對(duì)非葉節(jié)點(diǎn)的變量計(jì)算梯度實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

在pytorch中一般只對(duì)葉節(jié)點(diǎn)進(jìn)行梯度計(jì)算,也就是下圖中的d,e節(jié)點(diǎn),而對(duì)非葉節(jié)點(diǎn),也即是c,b節(jié)點(diǎn)則沒有顯式地去保留其中間計(jì)算過程中的梯度(因?yàn)橐话銇碚f只有葉節(jié)點(diǎn)才需要去更新),這樣可以節(jié)省很大部分的顯存,但是在調(diào)試過程中,有時(shí)候我們需要對(duì)中間變量梯度進(jìn)行監(jiān)控,以確保網(wǎng)絡(luò)的有效性,這個(gè)時(shí)候我們需要打印出非葉節(jié)點(diǎn)的梯度,為了實(shí)現(xiàn)這個(gè)目的,我們可以通過兩種手段進(jìn)行。

注冊(cè)hook函數(shù)

Tensor.register_hook[2] 可以注冊(cè)一個(gè)反向梯度傳導(dǎo)時(shí)的hook函數(shù),這個(gè)hook函數(shù)將會(huì)在每次計(jì)算 關(guān)于該張量 的時(shí)候 被調(diào)用,經(jīng)常用于調(diào)試的時(shí)候打印出非葉節(jié)點(diǎn)梯度。當(dāng)然,通過這個(gè)手段,你也可以自定義某一層的梯度更新方法。[3] 具體到這里的打印非葉節(jié)點(diǎn)的梯度,代碼如:

def hook_y(grad):
 print(grad)

x = Variable(torch.ones(2, 2), requires_grad=True)
y = x + 2
z = y * y * 3

y.register_hook(hook_y) 

out = z.mean()
out.backward()

輸出如:

tensor([[4.5000, 4.5000],
  [4.5000, 4.5000]])

retain_grad()

Tensor.retain_grad()顯式地保存非葉節(jié)點(diǎn)的梯度,當(dāng)然代價(jià)就是會(huì)增加顯存的消耗,而用hook函數(shù)的方法則是在反向計(jì)算時(shí)直接打印,因此不會(huì)增加顯存消耗,但是使用起來retain_grad()要比hook函數(shù)方便一些。代碼如:

x = Variable(torch.ones(2, 2), requires_grad=True)
y = x + 2
y.retain_grad()
z = y * y * 3
out = z.mean()
out.backward()
print(y.grad)

輸出如:

tensor([[4.5000, 4.5000],
  [4.5000, 4.5000]])

以上這篇在pytorch中對(duì)非葉節(jié)點(diǎn)的變量計(jì)算梯度實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • VSCode設(shè)置Python語言自動(dòng)格式化的詳細(xì)方案

    VSCode設(shè)置Python語言自動(dòng)格式化的詳細(xì)方案

    VSCode Python自動(dòng)格式化是指使用VSCode編輯器中的Python插件,可以自動(dòng)對(duì)Python代碼進(jìn)行格式化,使其符合PEP 8規(guī)范,這篇文章主要給大家介紹了關(guān)于VSCode設(shè)置Python語言自動(dòng)格式化的詳細(xì)方案,需要的朋友可以參考下
    2023-07-07
  • python用列表生成式寫嵌套循環(huán)的方法

    python用列表生成式寫嵌套循環(huán)的方法

    今天小編就為大家分享一篇python用列表生成式寫嵌套循環(huán)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python實(shí)現(xiàn)逆波蘭計(jì)算表達(dá)式實(shí)例詳解

    python實(shí)現(xiàn)逆波蘭計(jì)算表達(dá)式實(shí)例詳解

    這篇文章主要介紹了python實(shí)現(xiàn)逆波蘭計(jì)算表達(dá)式的方法,較為詳細(xì)的分析了逆波蘭表達(dá)式的概念及實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • python單元測(cè)試框架unittest基本用法案例

    python單元測(cè)試框架unittest基本用法案例

    unittest庫unittest庫是python的內(nèi)置庫,用來對(duì)程序進(jìn)行測(cè)試,下面這篇文章主要給大家介紹了關(guān)于python中單元測(cè)試框架unittest基本用法的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Python詳細(xì)介紹模型封裝部署流程

    Python詳細(xì)介紹模型封裝部署流程

    本文實(shí)例講述了Python模型封裝部署的原理與實(shí)現(xiàn)方法。封裝即是隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公共訪問方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python列表append()函數(shù)使用方法詳解

    Python列表append()函數(shù)使用方法詳解

    python中的append()函數(shù)是在列表末尾添加新的對(duì)象,且將添加的對(duì)象最為一個(gè)整體,下面這篇文章主要給大家介紹了關(guān)于Python列表append()函數(shù)使用方法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Python相互導(dǎo)入的問題解決

    Python相互導(dǎo)入的問題解決

    大家好,本篇文章主要講的是Python相互導(dǎo)入的問題解決,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Python中的元組介紹

    Python中的元組介紹

    今天小編就為大家分享一篇關(guān)于Python中的元組介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作

    python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作

    這篇文章主要介紹了python3 將階乘改成函數(shù)形式進(jìn)行調(diào)用的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 詳解Python操作RabbitMQ服務(wù)器消息隊(duì)列的遠(yuǎn)程結(jié)果返回

    詳解Python操作RabbitMQ服務(wù)器消息隊(duì)列的遠(yuǎn)程結(jié)果返回

    RabbitMQ是一款基于MQ的服務(wù)器,Python可以通過Pika庫來進(jìn)行程序操控,這里我們將來詳解Python操作RabbitMQ服務(wù)器消息隊(duì)列的遠(yuǎn)程結(jié)果返回:
    2016-06-06

最新評(píng)論

三河市| 柞水县| 林州市| 龙南县| 黑龙江省| 辛集市| 上饶县| 凤城市| 昌邑市| 军事| 新河县| 阳新县| 鲁山县| 罗江县| 綦江县| 重庆市| 定边县| 永泰县| 东阿县| 临朐县| 淮安市| 扎兰屯市| 高邮市| 女性| 紫阳县| 合阳县| 深水埗区| 邵东县| 兴和县| 隆尧县| 定西市| 定边县| 贞丰县| 五大连池市| 读书| 临高县| 洞头县| 阜新| 剑川县| 五大连池市| 平泉县|