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

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

pytorch 多個反向傳播操作

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

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

從一個錯誤說起:

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

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

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

有兩種方案:

方案一:

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

方案二:

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

下面給一個模擬:

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的輸出,而更新的時候,二者都是各自更新自己的參數(shù),并無聯(lián)系,但是上面的代碼會報一個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()),這個就優(yōu)美一點,a.detach()和a的區(qū)別你可以打印出來看一下,其實a.detach()是沒有梯度的,所以相當(dāng)于一個單純的數(shù)字,和model1就脫離了聯(lián)系,這樣model2和model1就是完全分離開來的兩個圖,但是如果用的是a則model2和model1則仍然公用一個圖,所以導(dǎo)致了錯誤。

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

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

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

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

我們都知道,當(dāng)前的目標(biāo)檢測(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來實現(xiàn),且直接通過回歸方式進行預(yù)測,存在這嚴重的正負樣本數(shù)據(jù)不均衡(1:1000)的問題,負樣本的比例過高,占據(jù)了loss的絕大部分,且大多數(shù)是容易分類的,這使得模型的訓(xùn)練朝著不希望的方向前進。作者認為這種數(shù)據(jù)的嚴重不均衡是造成one-stage detector精度低的主要原因,因此提出Focal Loss來解決這一問題

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

Focal Loss是在標(biāo)準(zhǔn)的交叉熵損失的基礎(chǔ)上改進而來。以二分類為例,標(biāo)準(zhǔn)的交叉熵損失函數(shù)為

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

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

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

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

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

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

有了Softmax Activation的反向梯度傳播公式,根據(jù)鏈?zhǔn)椒▌t,F(xiàn)ocal Loss的反向梯度傳播公式為

總結(jié):

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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pytorch 多個反向傳播操作》,本文關(guān)鍵詞  pytorch,多個,反向,傳播,操作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pytorch 多個反向傳播操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于pytorch 多個反向傳播操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日本成人在线网站| 久久99国产精品免费| 欧美精品日韩精品| 亚洲乱码一区二区三区在线观看| 麻豆精品在线视频| 日韩午夜电影在线观看| 亚洲小少妇裸体bbw| 91小宝寻花一区二区三区| 亚洲国产精品传媒在线观看| 国产成人av电影免费在线观看| 91精品一区二区三区久久久久久| 亚洲国产色一区| 久久综合九色综合欧美98| 伦理电影国产精品| 欧美电视剧在线观看完整版| 色偷偷一区二区三区| 国产精品久久久久久久久免费桃花| 欧美一区二区视频在线观看 | 久久网这里都是精品| 日韩一级大片在线| 欧美三级资源在线| 欧美视频在线播放| 成人精品国产一区二区4080| 精品一区二区三区久久久| 紧缚捆绑精品一区二区| 秋霞国产午夜精品免费视频| 久久精品国产免费| 麻豆91在线播放| 三级久久三级久久久| 麻豆久久久久久| 免费不卡在线视频| 国产一区91精品张津瑜| 国内成+人亚洲+欧美+综合在线 | 久久福利视频一区二区| 亚洲国产成人av网| 日本强好片久久久久久aaa| 亚洲无线码一区二区三区| 日韩成人一级大片| 亚洲精品一卡二卡| 亚洲精品乱码久久久久久久久| 国产精品盗摄一区二区三区| 中文欧美字幕免费| 国产精品高潮呻吟久久| 17c精品麻豆一区二区免费| 午夜影院久久久| 日韩二区在线观看| 成人av免费观看| 99re66热这里只有精品3直播| 黄色小说综合网站| 99国产精品久久久久| 色综合激情五月| 欧美tickling挠脚心丨vk| 久久天堂av综合合色蜜桃网| 久久久久久久久久久久电影| 亚洲大片精品永久免费| 日韩激情一区二区| 激情另类小说区图片区视频区| 国产一区二区不卡| 成人高清av在线| 色综合天天视频在线观看| 91视频在线看| 678五月天丁香亚洲综合网| 日韩手机在线导航| 国产精品亲子乱子伦xxxx裸| 日本免费新一区视频| 国产一区二区三区免费观看| 亚洲国产成人av| 丁香桃色午夜亚洲一区二区三区| 99久免费精品视频在线观看| 精品国产乱码久久久久久影片| 国产精品麻豆一区二区| 亚洲欧美自拍偷拍色图| 国产一区激情在线| 色综合中文字幕国产 | 中文字幕第一区二区| 夜夜爽夜夜爽精品视频| 国产99精品视频| 欧美日韩国产乱码电影| 欧美顶级少妇做爰| 亚洲一二三区在线观看| 国内精品久久久久影院薰衣草| 91麻豆精品国产91久久久| 国产精品亲子乱子伦xxxx裸| 国产精品的网站| 成人激情免费视频| 日韩午夜三级在线| 日韩精品电影在线观看| 91欧美一区二区| 日韩一区二区三区精品视频| 欧美日韩亚洲国产综合| 久久久久久99精品| 亚洲第一福利一区| 成人h版在线观看| 国产精品欧美一区二区三区| 青青草97国产精品免费观看| 91精品婷婷国产综合久久竹菊| 亚洲日本在线观看| 成人黄色av电影| 精品少妇一区二区三区免费观看| 一区二区在线观看免费视频播放| 99麻豆久久久国产精品免费| 国产亚洲成av人在线观看导航| 激情都市一区二区| 制服丝袜亚洲网站| 亚洲愉拍自拍另类高清精品| 欧美视频自拍偷拍| 亚洲三级久久久| 欧美欧美午夜aⅴ在线观看| 亚洲理论在线观看| av电影在线观看完整版一区二区| 久久女同性恋中文字幕| 麻豆成人av在线| 日韩免费成人网| 青青草国产成人av片免费| 777欧美精品| 亚洲高清免费一级二级三级| 91麻豆国产香蕉久久精品| 欧美日韩三级视频| 激情文学综合插| 国产亚洲精品免费| 欧美在线小视频| 亚洲韩国精品一区| 精品国产伦一区二区三区观看方式 | 一区二区在线观看av| 色综合视频一区二区三区高清| 日韩国产高清影视| 日韩精品一区二区三区蜜臀 | 91成人免费在线视频| 亚洲三级电影全部在线观看高清| 色哟哟精品一区| 日韩精品乱码av一区二区| 日韩一区二区三区在线观看| 国产精品自拍av| 亚洲欧美自拍偷拍| 色婷婷精品久久二区二区蜜臀av| 久久精品国产在热久久| 国产日本欧洲亚洲| 91精品国产91久久综合桃花| 国内精品视频666| 日韩欧美高清dvd碟片| 色综合久久久久| 五月天欧美精品| 日韩美女啊v在线免费观看| 欧美日韩亚洲综合| 成人高清伦理免费影院在线观看| 亚洲一区在线免费观看| 制服丝袜日韩国产| 99视频热这里只有精品免费| 亚洲午夜精品17c| 国产精品久久福利| 91精品在线免费| 蜜乳av一区二区| 亚洲曰韩产成在线| 欧美精品一区二区在线观看| 欧美日韩国产综合一区二区三区| 久久精品国产免费| 污片在线观看一区二区| 国产日韩视频一区二区三区| 蜜桃av一区二区| 亚洲在线观看免费视频| 色婷婷综合激情| 成人a级免费电影| 奇米四色…亚洲| 亚洲电影中文字幕在线观看| 日本一区二区三区久久久久久久久不 | 午夜精品久久久久久久99樱桃| 26uuu国产在线精品一区二区| 99久久精品99国产精品 | 成人午夜伦理影院| 视频一区在线播放| 中文字幕在线观看不卡视频| 欧美xxxxx牲另类人与| 国产乱一区二区| 偷窥少妇高潮呻吟av久久免费| 国产精品久久久久精k8| 精品免费99久久| 欧美精品少妇一区二区三区 | 在线不卡的av| 色香色香欲天天天影视综合网| 久久99精品一区二区三区三区| 亚洲免费伊人电影| 亚洲自拍偷拍av| 1024精品合集| 午夜电影久久久| 亚洲自拍与偷拍| 一区二区三区四区蜜桃| 欧美白人最猛性xxxxx69交| 久久夜色精品国产噜噜av| 4438x亚洲最大成人网| 精品国产乱子伦一区| 日韩精品一区二区三区swag| 精品国产免费人成在线观看| 欧美大胆一级视频| 亚洲国产精品成人综合| 久久九九全国免费| 91精品国产综合久久福利软件| 欧美成人三级在线| 欧美r级电影在线观看| 亚洲国产高清aⅴ视频| 国产女人18毛片水真多成人如厕|