婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > pytorch 多個反向傳播操作

pytorch 多個反向傳播操作

熱門標簽:公司電話機器人 激戰2地圖標注 騰訊外呼線路 海南400電話如何申請 哈爾濱ai外呼系統定制 唐山智能外呼系統一般多少錢 陜西金融外呼系統 白銀外呼系統 廣告地圖標注app

之前我的一篇文章pytorch 計算圖以及backward,講了一些pytorch中基本的反向傳播,理清了梯度是如何計算以及下降的,建議先看懂那個,然后再看這個。

從一個錯誤說起:

RuntimeError: Trying to backward through the graph a second time, but the buffers have already been freed

在深度學習中,有些場景需要進行兩次反向,比如Gan網絡,需要對D進行一次,還要對G進行一次,很多人都會遇到上面這個錯誤,這個錯誤的意思就是嘗試對一個計算圖進行第二次反向,但是計算圖已經釋放了。

其實看簡單點和我們之前的backward一樣,當圖進行了一次梯度更新,就會把一些梯度的緩存給清空,為了避免下次疊加,但在Gan這種情形下,我們必須要二次更新,那怎么辦呢。

有兩種方案:

方案一:

這是網上大多數給出的解決方案,在第一次反向時候加入一個l2.backward(),這樣就能避免釋放掉了。

方案二:

上面的方案雖然解決了問題,但是并不優美,因為我們用Gan的時候,D和G兩者的更新并無聯系,二者的聯系僅僅是D里面用到了G的輸出,而這個輸出一般我們都是直接拿來用的,而問題就出現在這里。

下面給一個模擬:

data = torch.randn(4,10)

model1 = torch.nn.Linear(10,2)
model2 = torch.nn.Linear(2,2)

optimizer1 = torch.optim.Adam(model1.parameters(), lr=0.001,betas=(0.5, 0.999))
optimizer2 = torch.optim.Adam(model2.parameters(), lr=0.001,betas=(0.5, 0.999))

loss = torch.nn.CrossEntropyLoss()
data = torch.randn(4,10)
label = torch.Tensor([0,1,1,0]).long()
for i in range(20):
    a = model1(data)
    b = model2(a)
    l1 = loss(a,label)
    l2 = loss(b,label)
    optimizer2.zero_grad()
    l2.backward()
    optimizer2.step()

    optimizer1.zero_grad()
    l1.backward()
    optimizer1.step()

上面定義了兩個模型,而model2的輸入是model1的輸出,而更新的時候,二者都是各自更新自己的參數,并無聯系,但是上面的代碼會報一個RuntimeError: Trying to backward through the graph a second time, but the buffers have already been freed 這樣的錯,解決方案可以是l2.backward(retain_graph=True)。

除此之外我們還可以是b = model2(a.detach()),這個就優美一點,a.detach()和a的區別你可以打印出來看一下,其實a.detach()是沒有梯度的,所以相當于一個單純的數字,和model1就脫離了聯系,這樣model2和model1就是完全分離開來的兩個圖,但是如果用的是a則model2和model1則仍然公用一個圖,所以導致了錯誤。

可以看下面示意圖(這個是我猜測,幫助理解):

左邊相當于直接用a而右邊則用a.detach(),類似的在Gan網絡里面D的輸入可以改為G的輸出y_fake.detach()。

但有一點需要注意的是,兩個網絡一定沒有需要共同更新的 ,假如上面的optimizer2 = torch.optim.Adam(itertools.chain(model1.parameters(),model2.parameters()), lr=0.001,betas=(0.5, 0.999)),則還是用retain_graph=True保險,因為.detach則model2反向不會傳播到model1,導致不對model1里面參數更新。

補充:聊聊Focal Loss及其反向傳播

我們都知道,當前的目標檢測(Objece Detection)算法主要分為兩大類:two-stage detector和one-stage detector。two-stage detector主要包括rcnn、fast-rcnn、faster-rcnn和rfcn等,one-stage detector主要包括yolo和ssd等,前者精度高但檢測速度較慢,后者精度低些但速度很快。

對于two-stage detector而言,通常先由RPN生成proposals,再由RCNN對proposals進行Classifcation和Bounding Box Regression。這樣做的一個好處是有利于樣本和模型之間的feature alignment,從而使Classification和Bounding Box Regression更容易些;此外,RPN和RCNN中存在正負樣本不均衡的問題,RPN直接限制正負樣本的比例為1:1,對于固定的rpn_batch_size,正樣本不足的情況下才用負樣本來填充,RCNN則是直接限制了正負樣本的比例為1:3或者采用OHEM。

對于one-stage detector而言,樣本和模型之間的feature alignment只能通過reception field來實現,且直接通過回歸方式進行預測,存在這嚴重的正負樣本數據不均衡(1:1000)的問題,負樣本的比例過高,占據了loss的絕大部分,且大多數是容易分類的,這使得模型的訓練朝著不希望的方向前進。作者認為這種數據的嚴重不均衡是造成one-stage detector精度低的主要原因,因此提出Focal Loss來解決這一問題

通過人工控制正負樣本比例或者OHEM能夠一定程度解決數據不均衡問題,但這兩種方法都比較粗暴,采用這種“一刀切”的方式有可能把一些hard examples忽略掉。因此,作者提出了一種新的損失函數Focal Loss,不忽略任何樣本,同時又能讓模型訓練時更加專注在hard examples上。簡單說明下Focal loss的原理

Focal Loss是在標準的交叉熵損失的基礎上改進而來。以二分類為例,標準的交叉熵損失函數為

針對類別不均衡,針對對不同類別對loss的貢獻進行控制即可,也就是加一個控制權重αt,那么改進后的balanced cross entropy loss為

但是balanced cross entropy loss沒辦法讓訓練時專注在hard examples上。實際上,樣本的正確分類概率pt越大,那么往往說明這個樣本越易分。所以,最終的Focal Loss為

Focal Loss存在這兩個超參數(hyperparameter),不同的αt和γ,對于的loss如Figure 1所示。從Figure 4, 我們可以看到γ的變化對正(forground)樣本的累積誤差的影響并不大,但是對于負(background)樣本的累積誤差的影響還是很大的(γ=2時,將近99%的background樣本的損失都非常小)。

接下來看下實驗結果,為了驗證Focal Loss,作者提出了一種新的one-stage detector架構RetinaNet,采用的是resnet_fpn,同時scales增加到15個,如Figure 3所示

Table 1給出了RetinaNet和Focal Loss的一些實驗結果,從中我們看出增加α-類別均衡,AP提高了0.9,再增加了γ控制,AP達到了37.8.Focal Local相比于OHEM,AP提高了3.2。從Table 2可以看出,增加訓練時間并采用scale jitter,AP最終那達到39.1。

Focal Loss的原理分析和實驗結果至此結束了,那么,我們接下來看下Focal Loss的反向傳播。首先給出Softmax Activation的反向梯度傳播公式,為

有了Softmax Activation的反向梯度傳播公式,根據鏈式法則,Focal Loss的反向梯度傳播公式為

總結:

Focal Loss主要用于解決數據不均衡問題,可以看做是OHEM算法的延伸。作者是將Focal Loss用于one-stage detector,但實際上這種解決數據不均衡的方法對于two-stage detector來講同樣有效。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pytorch中的自定義反向傳播,求導實例
  • pytorch .detach() .detach_() 和 .data用于切斷反向傳播的實現
  • PyTorch: 梯度下降及反向傳播的實例詳解
  • pytorch loss反向傳播出錯的解決方案

標簽:上海 惠州 常德 益陽 四川 黑龍江 黔西 鷹潭

巨人網絡通訊聲明:本文標題《pytorch 多個反向傳播操作》,本文關鍵詞  pytorch,多個,反向,傳播,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch 多個反向傳播操作》相關的同類信息!
  • 本頁收集關于pytorch 多個反向傳播操作的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人激情图片网| 国产精品入口麻豆原神| 99精品视频一区二区三区| 极品少妇一区二区| 加勒比av一区二区| 国产成人av电影在线播放| 国产专区综合网| 国产成人精品一区二| 国产精品综合av一区二区国产馆| 日本成人在线不卡视频| 老汉av免费一区二区三区 | 不卡av免费在线观看| 人人狠狠综合久久亚洲| 日本欧洲一区二区| 久久69国产一区二区蜜臀| 国产精品综合av一区二区国产馆| 国产精品中文字幕一区二区三区| 国产凹凸在线观看一区二区 | 国产精品久久久久影院亚瑟| 国产女人18水真多18精品一级做| 国产精品沙发午睡系列990531| 国产精品久久久爽爽爽麻豆色哟哟 | 亚洲视频一区二区免费在线观看| 欧美国产丝袜视频| 亚洲一区二区三区中文字幕 | 一区二区三区不卡在线观看| 亚洲一区视频在线| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲国产综合在线| 免播放器亚洲一区| 国产麻豆成人传媒免费观看| 色爱区综合激月婷婷| 欧美日韩精品欧美日韩精品一 | 免费人成黄页网站在线一区二区| 国内精品免费**视频| 色综合天天综合狠狠| 在线不卡a资源高清| 国产亚洲一区二区三区四区 | 欧美一区二区三区色| 亚洲精品一区二区三区影院| 国产精品国产馆在线真实露脸 | 国产美女久久久久| 色视频欧美一区二区三区| 欧美成人高清电影在线| 国产精品国产自产拍高清av王其| 亚洲亚洲精品在线观看| 国产精品18久久久久久久网站| 91美女片黄在线观看91美女| 欧美精品一区二区久久婷婷| 一区二区三区精品久久久| 国产盗摄女厕一区二区三区| 欧美日韩不卡视频| 亚洲精品自拍动漫在线| 国产精品亚洲第一区在线暖暖韩国| 91久久国产最好的精华液| 久久先锋资源网| 日韩成人免费在线| 欧洲激情一区二区| 一区二区三区欧美日韩| 国产91高潮流白浆在线麻豆| 欧美成人伊人久久综合网| 日韩电影在线看| 在线免费不卡视频| 亚洲已满18点击进入久久| 99re热这里只有精品免费视频| 久久久激情视频| 久草在线在线精品观看| 日韩视频在线永久播放| 蜜臀av国产精品久久久久| 5月丁香婷婷综合| 日韩成人午夜精品| 91精品一区二区三区久久久久久| 亚洲另类在线一区| 欧美性生活久久| 亚洲精品国产一区二区精华液 | 一区二区三区美女视频| 91麻豆国产精品久久| 亚洲婷婷综合色高清在线| 国产精品77777竹菊影视小说| 久久久午夜精品| 国产精一品亚洲二区在线视频| 久久综合资源网| 国产一区二区91| 中文字幕电影一区| 99re热这里只有精品视频| 亚洲男同性视频| 欧美丝袜丝交足nylons图片| 丝袜亚洲另类欧美| 日韩欧美国产午夜精品| 国产专区欧美精品| 国产精品污污网站在线观看| 91亚洲男人天堂| 一区二区三区日韩欧美精品| 在线成人av网站| 韩国成人福利片在线播放| 国产视频一区二区三区在线观看| 成人丝袜18视频在线观看| 亚洲精品免费视频| 日韩精品一区二区三区在线观看| 国产成人免费视频网站高清观看视频 | 欧美日韩国产高清一区二区 | 欧美不卡一二三| 国产成人亚洲综合色影视| 中文字幕中文字幕在线一区| 在线免费观看日本一区| 国产永久精品大片wwwapp| 香蕉久久夜色精品国产使用方法| 欧美日韩情趣电影| 国产一区二区三区日韩| 亚洲人成精品久久久久| 7777精品伊人久久久大香线蕉最新版| 国产乱人伦精品一区二区在线观看| 成人免费在线播放视频| 欧美精品一卡两卡| 99精品视频在线观看免费| 免费成人在线视频观看| 亚洲色图视频免费播放| 精品国产精品一区二区夜夜嗨| 99久久精品国产毛片| 精品亚洲国产成人av制服丝袜| 亚洲视频一区二区在线| 精品国产伦一区二区三区免费| 99久久精品国产导航| 精品一区在线看| 亚洲成人动漫一区| 亚洲精选免费视频| 国产婷婷精品av在线| 日韩三级电影网址| 在线观看日韩毛片| 99久久伊人久久99| 九九视频精品免费| 免费一级片91| 艳妇臀荡乳欲伦亚洲一区| 国产欧美一区二区三区在线老狼| 欧美区在线观看| 在线视频综合导航| 99久久er热在这里只有精品66| 免费在线观看不卡| 免费高清不卡av| 奇米影视一区二区三区| 亚洲a一区二区| 一区二区三区在线免费观看| 成人欧美一区二区三区在线播放| 国产日韩综合av| 国产婷婷精品av在线| 日本一区二区三区久久久久久久久不| 精品蜜桃在线看| 欧美一区二区日韩一区二区| 欧美精品自拍偷拍动漫精品| 在线观看视频一区| 在线视频亚洲一区| 欧美日韩中文字幕一区| 欧美午夜一区二区三区免费大片| 91丨九色丨黑人外教| 日本韩国欧美国产| 欧美色男人天堂| 日韩一区二区在线看片| 日韩欧美在线综合网| 精品日韩成人av| 久久综合五月天婷婷伊人| 久久久久久久久久久久久久久99 | 欧美日韩另类国产亚洲欧美一级| 欧美性色黄大片| 欧美色视频在线观看| 3751色影院一区二区三区| 欧美一激情一区二区三区| 久久久蜜臀国产一区二区| 国产欧美日韩另类视频免费观看| 国产精品高潮久久久久无| 亚洲一区二区成人在线观看| 午夜国产精品影院在线观看| 日本成人在线网站| 国产精品一二二区| 欧美丝袜自拍制服另类| 精品久久人人做人人爱| 中文字幕亚洲视频| 免费在线观看视频一区| 国产91高潮流白浆在线麻豆| 在线免费观看不卡av| 亚洲精品一线二线三线无人区| 国产精品国产自产拍高清av王其| 亚洲v精品v日韩v欧美v专区| 日韩综合小视频| 成人国产免费视频| 欧美喷水一区二区| 欧美经典一区二区三区| 亚洲国产另类av| 国产成人福利片| 欧美日本一区二区三区四区| 国产色产综合色产在线视频| 五月婷婷色综合| 不卡的电影网站| 日韩一级视频免费观看在线| 亚洲色图一区二区| 国内外精品视频| 欧美日韩亚洲综合一区| 国产精品三级电影| 黑人巨大精品欧美一区| 欧美人狂配大交3d怪物一区| 亚洲图片另类小说|