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

主頁 > 知識庫 > PyTorch訓練LSTM時loss.backward()報錯的解決方案

PyTorch訓練LSTM時loss.backward()報錯的解決方案

熱門標簽:市場上的電銷機器人 北京電銷外呼系統加盟 佛山400電話辦理 小蘇云呼電話機器人 儋州電話機器人 北瀚ai電銷機器人官網手機版 地圖標注面積 所得系統電梯怎樣主板設置外呼 朝陽手機外呼系統

訓練用PyTorch編寫的LSTM或RNN時,在loss.backward()上報錯:

RuntimeError: Trying to backward through the graph a second time, but the buffers have already been freed. Specify retain_graph=True when calling backward the first time.

千萬別改成loss.backward(retain_graph=True),會導致顯卡內存隨著訓練一直增加直到OOM:

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 10.73 GiB total capacity; 9.79 GiB already allocated; 13.62 MiB free; 162.76 MiB cached)

正確做法:

LSRM / RNN模塊初始化時定義好hidden,每次forward都要加上self.hidden = self.init_hidden():
Class LSTMClassifier(nn.Module):
    def __init__(self, embedding_dim, hidden_dim):
    # 此次省略其它代碼
    self.rnn_cell = nn.LSTM(embedding_dim, hidden_dim)
    self.hidden = self.init_hidden()
    # 此次省略其它代碼
    
    def init_hidden(self):
        # 開始時刻, 沒有隱狀態
        # 關于維度設置的詳情,請參考 Pytorch 文檔
        # 各個維度的含義是 (Seguence, minibatch_size, hidden_dim)
        return (torch.zeros(1, 1, self.hidden_dim),
                torch.zeros(1, 1, self.hidden_dim))
    def forward(self, x):
        # 此次省略其它代碼
        self.hidden = self.init_hidden()  # 就是加上這句!!!!
        out, self.hidden = self.rnn_cell(x, self.hidden)     
        # 此次省略其它代碼
        return out    

或者其它模塊每次調用這個模塊時,其它模塊的forward()都對這個LSTM模塊init_hidden()一下。

如定義一個模型LSTM_Model():

Class LSTM_Model(nn.Module):
    def __init__(self, embedding_dim, hidden_dim):
        # 此次省略其它代碼
        self.rnn = LSTMClassifier(embedding_dim, hidden_dim)
        # 此次省略其它代碼
        
    def forward(self, x):
        # 此次省略其它代碼
        self.rnn.hidden = self.rnn.init_hidden()  # 就是加上這句!!!!
        out = self.rnn(x)     
        # 此次省略其它代碼
        return out

這是因為:

根據 官方tutorial,在 loss 反向傳播的時候,pytorch 試圖把 hidden state 也反向傳播,但是在新的一輪 batch 的時候 hidden state 已經被內存釋放了,所以需要每個 batch 重新 init (clean out hidden state), 或者 detach,從而切斷反向傳播。

補充:pytorch:在執行loss.backward()時out of memory報錯

在自己編寫SurfNet網絡的過程中,出現了這個問題,查閱資料后,將得到的解決方法匯總如下

可試用的方法:

1、reduce batch size, all the way down to 1

2、remove everything to CPU leaving only the network on the GPU

3、remove validation code, and only executing the training code

4、reduce the size of the network (I reduced it significantly: details below)

5、I tried scaling the magnitude of the loss that is backpropagating as well to a much smaller value

在訓練時,在每一個step后面加上:

torch.cuda.empty_cache()

在每一個驗證時的step之后加上代碼:

with torch.no_grad()

不要在循環訓練中累積歷史記錄

total_loss = 0
for i in range(10000):
    optimizer.zero_grad()
    output = model(input)
    loss = criterion(output)
    loss.backward()
    optimizer.step()
    total_loss += loss

total_loss在循環中進行了累計,因為loss是一個具有autograd歷史的可微變量。你可以通過編寫total_loss += float(loss)來解決這個問題。

本人遇到這個問題的原因是,自己構建的模型輸入到全連接層中的特征圖拉伸為1維向量時太大導致的,加入pool層或者其他方法將最后的卷積層輸出的特征圖尺寸減小即可。

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

您可能感興趣的文章:
  • 解決Pytorch訓練過程中loss不下降的問題
  • pytorch loss反向傳播出錯的解決方案
  • Pytorch中accuracy和loss的計算知識點總結
  • 關于pytorch中網絡loss傳播和參數更新的理解

標簽:龍巖 云南 酒泉 定西 金融催收 江蘇 商丘 寧夏

巨人網絡通訊聲明:本文標題《PyTorch訓練LSTM時loss.backward()報錯的解決方案》,本文關鍵詞  PyTorch,訓練,LSTM,時,loss.backward,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PyTorch訓練LSTM時loss.backward()報錯的解決方案》相關的同類信息!
  • 本頁收集關于PyTorch訓練LSTM時loss.backward()報錯的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品综合二区| 欧美午夜视频网站| 欧美午夜一区二区三区| 久久久不卡网国产精品一区| 香蕉影视欧美成人| 色欧美乱欧美15图片| 中文成人av在线| 狠狠色丁香婷综合久久| 欧美精品久久一区| 亚洲第一二三四区| 91国在线观看| 亚洲精品少妇30p| 成人黄色小视频在线观看| 久久香蕉国产线看观看99| 亚洲成av人片观看| 欧美三级日韩在线| 亚洲最快最全在线视频| 99久久99久久久精品齐齐| 国产午夜精品久久久久久免费视 | 日韩二区三区四区| 欧美伊人久久久久久久久影院| 国产精品久久久久久久久快鸭| 韩国中文字幕2020精品| 日韩欧美中文字幕精品| 日本免费在线视频不卡一不卡二| 欧美日韩国产一二三| 亚洲一区av在线| 欧洲激情一区二区| 亚洲成人高清在线| 在线成人高清不卡| 日本美女视频一区二区| 日韩午夜在线观看视频| 久久精品国产在热久久| 久久综合成人精品亚洲另类欧美| 国产精品一区二区在线播放 | 亚洲老妇xxxxxx| 97久久精品人人爽人人爽蜜臀| 国产精品国模大尺度视频| 91丨porny丨蝌蚪视频| 一区二区三区久久| 欧美一区二区三区在线视频| 老司机精品视频线观看86 | 日韩精品一区二区三区中文精品| 日韩精品亚洲一区二区三区免费| 日韩一级黄色片| 国产91精品一区二区麻豆亚洲| 亚洲天堂免费看| 91精品国模一区二区三区| 韩国毛片一区二区三区| 中文字幕一区二区视频| 91黄色免费观看| 九色综合国产一区二区三区| 欧美韩国日本不卡| 欧美日韩国产高清一区| 精品中文字幕一区二区| 国产精品国产a| 538prom精品视频线放| 国产曰批免费观看久久久| 1区2区3区精品视频| 欧美久久婷婷综合色| 国产乱淫av一区二区三区| 自拍视频在线观看一区二区| 欧美人狂配大交3d怪物一区| 国产激情视频一区二区在线观看| 亚洲欧美另类小说视频| 91麻豆精品国产91久久久更新时间 | 亚洲成va人在线观看| 精品三级在线观看| 色偷偷久久一区二区三区| 精彩视频一区二区| 亚洲午夜成aⅴ人片| 国产亚洲视频系列| 日韩一区二区三区视频在线| 99久久精品国产网站| 精品一区二区三区不卡 | 午夜精品福利一区二区蜜股av| 久久综合九色综合欧美亚洲| 在线观看欧美日本| 成人国产在线观看| 黄一区二区三区| 日韩成人免费看| 亚洲国产综合在线| 《视频一区视频二区| 久久婷婷一区二区三区| 91精品国产品国语在线不卡| 94色蜜桃网一区二区三区| 国产精品99久| 国产一区高清在线| 久久国产三级精品| 日韩av在线免费观看不卡| 亚洲精品乱码久久久久久黑人| 久久久久国产一区二区三区四区| 日韩欧美国产一区二区三区| 欧美日韩大陆在线| 欧美性高清videossexo| 99久久99久久综合| 成人妖精视频yjsp地址| 国产美女精品人人做人人爽| 美腿丝袜亚洲一区| 美女性感视频久久| 日本一不卡视频| 日本欧美一区二区在线观看| 亚洲成人精品影院| 一区二区三区欧美激情| 一区二区三区免费网站| 亚洲一卡二卡三卡四卡 | www.日韩大片| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产精品一卡二卡| 国产成人三级在线观看| 国产九色精品成人porny| 国产一区二区三区美女| 国产99久久久国产精品免费看| 国产激情一区二区三区四区 | 视频一区二区三区在线| 丝袜美腿成人在线| 蜜臀久久久99精品久久久久久| 蜜桃免费网站一区二区三区| 精品一区二区免费| 福利电影一区二区三区| 99在线精品一区二区三区| 91视视频在线直接观看在线看网页在线看| av一区二区不卡| 欧美日韩午夜影院| 精品成人一区二区三区四区| 中文字幕巨乱亚洲| 亚洲一区二区三区在线看| 日韩成人一级片| 国产乱子伦视频一区二区三区| 成人激情文学综合网| 在线精品视频免费播放| 日韩欧美的一区| 一色屋精品亚洲香蕉网站| 亚洲国产一区二区视频| 狠狠色丁香久久婷婷综| 99国产精品视频免费观看| 在线成人av网站| 国产欧美综合在线| 亚洲电影视频在线| 国产91精品免费| 欧美日韩国产一级| 国产精品丝袜91| 日本最新不卡在线| 99久久99久久久精品齐齐| 欧美一区二区在线观看| 中文字幕第一区综合| 日韩二区三区四区| aaa欧美色吧激情视频| 日韩欧美激情在线| 亚洲精品你懂的| 国产精品 欧美精品| 欧美久久婷婷综合色| 1区2区3区国产精品| 国产呦精品一区二区三区网站| 99久久久久久| 久久嫩草精品久久久久| 亚洲18女电影在线观看| 国产mv日韩mv欧美| 精品日本一线二线三线不卡| 一区二区三区自拍| 成人高清视频在线| 久久一区二区三区四区| 日韩av电影一区| 91久久国产综合久久| 国产精品久线观看视频| 国产在线一区二区综合免费视频| 欧美日韩成人一区| 一级特黄大欧美久久久| 成人黄色免费短视频| 国产亚洲欧美日韩在线一区| 日本欧美加勒比视频| 欧美中文字幕亚洲一区二区va在线| 亚洲国产精品黑人久久久| 精品无人区卡一卡二卡三乱码免费卡| 欧美日韩一区二区三区四区| 亚洲三级久久久| 91日韩精品一区| 136国产福利精品导航| 成人晚上爱看视频| 国产精品视频观看| 国产成人综合亚洲91猫咪| 精品国产青草久久久久福利| 日韩av电影免费观看高清完整版| 欧美日韩国产成人在线免费| 亚洲制服丝袜在线| 欧美日韩亚洲国产综合| 亚洲成av人在线观看| 欧美日韩国产色站一区二区三区| 亚洲国产aⅴ天堂久久| 欧美影片第一页| 爽爽淫人综合网网站| 538prom精品视频线放| 免费高清在线一区| 欧美成人精品二区三区99精品| 美女高潮久久久| 久久久久亚洲综合| 懂色中文一区二区在线播放| 中文字幕一区二区三中文字幕| 日本久久电影网| 日韩在线一区二区三区|