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

淺談pytorch grad_fn以及權(quán)重梯度不更新的問(wèn)題

 更新時(shí)間:2019年08月20日 14:10:06   作者:端木亽  
今天小編就為大家分享一篇淺談pytorch grad_fn以及權(quán)重梯度不更新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

前提:我訓(xùn)練的是二分類網(wǎng)絡(luò),使用語(yǔ)言為pytorch

Varibale包含三個(gè)屬性:

data:存儲(chǔ)了Tensor,是本體的數(shù)據(jù)

grad:保存了data的梯度,本事是個(gè)Variable而非Tensor,與data形狀一致

grad_fn:指向Function對(duì)象,用于反向傳播的梯度計(jì)算之用

在構(gòu)建網(wǎng)絡(luò)時(shí),剛開(kāi)始的錯(cuò)誤為:沒(méi)有可以grad_fn屬性的變量。

百度后得知要對(duì)需要進(jìn)行迭代更新的變量設(shè)置requires_grad=True ,操作如下:

train_pred = Variable(train_pred.float(), requires_grad=True)`

這樣設(shè)置之后網(wǎng)絡(luò)是跑起來(lái)了,但是準(zhǔn)確率一直沒(méi)有提升,很明顯可以看出網(wǎng)絡(luò)什么都沒(méi)學(xué)到。

我輸出 model.parameters() (網(wǎng)絡(luò)內(nèi)部的權(quán)重和偏置)查看,發(fā)現(xiàn)它的權(quán)重并沒(méi)有更新,一直是同一個(gè)值,至此可以肯定網(wǎng)絡(luò)什么都沒(méi)學(xué)到,還是迭代那里出了問(wèn)題。

詢問(wèn)同門后發(fā)現(xiàn)問(wèn)題不在這里。

計(jì)算loss時(shí),target與train_pred的size不匹配,我以以下操作修改了train_pred,使兩者尺寸一致,才導(dǎo)致了上述問(wèn)題。

  train_pred = model(data)
  train_pred = torch.max(train_pred, 1)[1].data.squeeze()
  train_pred = Variable(train_pred.float(), requires_grad=False)
  train_loss = F.binary_cross_entropy(validation_pred.float(), target)
  train_loss.backward()

對(duì)train_pred多次處理后,它已無(wú)法正確地反向傳播,實(shí)際上應(yīng)該更改target,使其與train_pred size一致。

重點(diǎn)?。?!要想loss正確反向傳播,應(yīng)直接將model(data)傳入loss函數(shù)。

最終修改代碼如下:

 for batch_idx, (data, target) in enumerate(train_loader):
  # Get Samples
  label = target.view(target.size(0), 1).long()
  target_onehot = torch.zeros(data.shape[0], args.num_classes).scatter_(1, label, 1)
  data, target_onehot = Variable(data.cuda()), Variable(target_onehot.cuda().float())
  
  model.zero_grad()

  # Predict
  train_pred = model(data)
  train_loss = F.binary_cross_entropy(train_pred, target_onehot)
  train_loss.backward()
  optimizer.step()

以上這篇淺談pytorch grad_fn以及權(quán)重梯度不更新的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python getattr()函數(shù)使用方法代碼實(shí)例

    Python getattr()函數(shù)使用方法代碼實(shí)例

    這篇文章主要介紹了Python getattr()函數(shù)使用方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python torch.utils.data.DataLoader使用方法

    python torch.utils.data.DataLoader使用方法

    這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Flask框架Flask-Login用法分析

    Flask框架Flask-Login用法分析

    這篇文章主要介紹了Flask框架Flask-Login用法,結(jié)合實(shí)例形式分析了Flask-Login插件進(jìn)行登錄驗(yàn)證的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • 解決python圖像處理圖像賦值后變?yōu)榘咨膯?wèn)題

    解決python圖像處理圖像賦值后變?yōu)榘咨膯?wèn)題

    這篇文章主要介紹了解決python圖像處理圖像賦值后變?yōu)榘咨膯?wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python 基于TCP協(xié)議的套接字編程詳解

    python 基于TCP協(xié)議的套接字編程詳解

    這篇文章主要介紹了python 基于TCP協(xié)議的套接字編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Python實(shí)現(xiàn)數(shù)值積分方式

    Python實(shí)現(xiàn)數(shù)值積分方式

    今天小編就為大家分享一篇Python實(shí)現(xiàn)數(shù)值積分方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python爬蟲(chóng)之urllib基礎(chǔ)用法教程

    Python爬蟲(chóng)之urllib基礎(chǔ)用法教程

    這篇文章主要為大家詳細(xì)介紹了Python爬蟲(chóng)1.1 urllib基礎(chǔ)用法教程,用于對(duì)Python爬蟲(chóng)技術(shù)進(jìn)行系列文檔講解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 教你用 Python 發(fā)送告警通知到微信的操作過(guò)程

    教你用 Python 發(fā)送告警通知到微信的操作過(guò)程

    大家都知道常見(jiàn)的告警方式有:郵件,電話,短信,微信,今天通過(guò)本文給大家介紹下Python 發(fā)送告警通知到微信的操作過(guò)程,感興趣的朋友一起看看吧
    2022-01-01
  • Python從文件中讀取數(shù)據(jù)的方法步驟

    Python從文件中讀取數(shù)據(jù)的方法步驟

    這篇文章主要介紹了Python從文件中讀取數(shù)據(jù)的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python中opencv圖像疊加、圖像融合、按位操作的具體實(shí)現(xiàn)

    python中opencv圖像疊加、圖像融合、按位操作的具體實(shí)現(xiàn)

    opencv圖像操作可以更好更快的方便我們處理圖片,本文主要介紹了圖像疊加、圖像融合、按位操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論

通江县| 隆德县| 白银市| 当涂县| 郯城县| 肥乡县| 延安市| 永和县| 防城港市| 广丰县| 太谷县| 锦屏县| 乳山市| 特克斯县| 卓资县| 连江县| 白玉县| 顺平县| 含山县| 扶绥县| 咸宁市| 钟山县| 西乡县| 大新县| 湘乡市| 永康市| 卓资县| 泽普县| 永胜县| 达州市| 东台市| 新源县| 通江县| 潞城市| 越西县| 开原市| 裕民县| 新建县| 清涧县| 瓦房店市| 锦屏县|