好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > pytorch 運行一段時間后出現GPU OOM的問題

pytorch 運行一段時間后出現GPU OOM的問題

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

pytorch的dataloader會將數據傳到GPU上,這個過程GPU的mem占用會逐漸增加,為了避免GPUmen被無用的數據占用,可以在每個step后用del刪除一些變量,也可以使用torch.cuda.empty_cache()釋放顯存:

del targets, input_k, input_mask
torch.cuda.empty_cache()

這時能觀察到GPU的顯存一直在動態變化。

但是上述方式不是一個根本的解決方案,因為他受到峰值的影響很大。比如某個batch的數據量明顯大于其他batch,可能模型處理該batch時顯存會不夠用,這也會導致OOM,雖然其他的batch都能順利執行。

顯存的占用跟這幾個因素相關:

模型參數量

batch size

一個batch的數據 size

通常我們不希望改變模型參數量,所以只能通過動態調整batch-size,使得一個batch的數據 size不會導致顯存OOM:

ilen = int(sorted_data[start][1]['input'][0]['shape'][0])
olen = int(sorted_data[start][1]['output'][0]['shape'][0])
# if ilen = 1000 and max_length_in = 800
# then b = batchsize / 2
# and max(1, .) avoids batchsize = 0
# 太長的句子會被動態改變bsz,單獨成一個batch,否則padding的部分就太多了,數據量太大,OOM
factor = max(int(ilen / max_length_in), int(olen / max_length_out))
b = max(1, int(batch_size / (1 + factor)))
#b = batch_size
end = min(len(sorted_data), start + b)
minibatch.append(sorted_data[start:end])
if end == len(sorted_data):
    break
start = end

此外,如何選擇一個合適的batchsize也是個很重要的問題,我們可以先對所有數據按照大小(長短)排好序(降序),不進行shuffle,按照64,32,16依次嘗試bsz,如果模型在執行第一個batch的時候沒出現OOM,那么以后一定也不會出現OOM(因為降序排列了數據,所以前面的batch的數據size最大)。

還有以下問題

pytorch increasing cuda memory OOM 問題

改了點model 的計算方式,然后就 OOM 了,調小了 batch_size,然后發現發現是模型每次迭代都會動態增長 CUDA MEMORY, 在排除了 python code 中的潛在內存溢出問題之后,基本可以把問題定在 pytorch 的圖計算問題上了,說明每次迭代都重新生成了一張計算圖,然后都保存著在,就 OOM 了。

參考

CUDA memory continuously increases when net(images) called in every iteration

Understanding graphs and state

說是會生成多個計算圖:

loss = SomeLossFunction(out) + SomeLossFunction(out)

準備用 sum來避免多次生成計算圖的問題:

loss = Variable(torch.sum(torch.cat([loss1, loss2], 0)))

然而,調著調著就好了,和報錯前的 code 沒太大差別。估計的原因是在pycharm 遠程連接服務器的時候 code 的保存版本差異問題,這個也需要解決一下。

還有個多次迭代再計算梯度的問題,類似于 caffe中的iter_size,這個再仔細看看。

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

您可能感興趣的文章:
  • 解決pytorch GPU 計算過程中出現內存耗盡的問題
  • Pytorch GPU顯存充足卻顯示out of memory的解決方式
  • 解決Pytorch 訓練與測試時爆顯存(out of memory)的問題

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

巨人網絡通訊聲明:本文標題《pytorch 運行一段時間后出現GPU OOM的問題》,本文關鍵詞  pytorch,運行,一段時間,后,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch 運行一段時間后出現GPU OOM的問題》相關的同類信息!
  • 本頁收集關于pytorch 運行一段時間后出現GPU OOM的問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 成人一级大片| 小妇人电影在线观看免费高清2019| 18一25card中国大学第一次户外| 亚洲浪潮AV性色AV天堂| 95福利院体检30秒| 胸大的姑娘中文| 新西兰一级毛片| 女子扒开腿被狂躁C到高潮免费| 秋霞电影网第2集播出时间| 亚洲成a人片77777潘金莲| 91精品啪在线观看国产老湿机 | 香蕉视频完整版| 精产国品一二三产区入口电影| 国产喂奶挤奶一区二区三区| 1分38秒叫床声小宾馆| 国产chinasex对白videos麻豆| 日本免费福利视频| 综合久久99久久99播放| 波多野结衣无码一区二区在线视频 | 主人啊灬啊别停灬用力啊视频| 色老板在线免费观看| 九九99久久精品| 日本一级AB片| 国产三级小视频在线观看| 特黄试看20分钟一级毛片| 国产做受69???吞精| 军中乐园激情在第几分钟| 国产精品视频麻豆| 香蕉福利久久福利久久香蕉| 男人和女人做爰视频| 太深?拔出来?要高潮了网站| 国产一毛片| 欧美???sex少妇740| 舔女生下面的视频| 双性受qj嫁给老男人| 黄 色 免 费 网站在线观看| 极品avove丁字裤啪啪蜜臀| 男男gaYGAYS?亚洲男同| h版成版在线播放| 韩国伦理在线| 日本黄色影院在线观看|