日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

關于CUDA?out?of?memory的解決方案_python

作者:蘿卜牛腩 ? 更新時間: 2023-04-03 編程語言

1 問題描述

很多時候,我們在開始進行深度學習訓練的時候,經常出現存儲不夠的信息,

諸如這樣:

你可能會認為是自己的顯卡顯存不夠,那就再掏錢去買個更大的顯卡吧。

我的顯卡是titan xp 12g顯存。

其實對于絕大多數的網絡都是夠用的,那么這個問題該如何解決哪?

2 問題的解決

1 如果你的顯存真的比較小

我的顯卡是titan xp12g顯存,舉個例子我在訓練模型時,設置的batch_size==16,也就是說,我可以同時處理16副圖,我占用的顯存是5.82個g,如果你的顯存比我的小,或者你處理其他的圖片占用的更大,那么,怎

么辦哪?

你可以:

修改:batch_size==4

請盡量還是選用2的n次方來設置參數。這是深度學習二進制的本質。

修改后,你的顯存占用會從5.82g降到0.81g,就算你的顯存比較小,總有一天,你會滿足自己的需求。

2 如果你的cpu比較差

我使用的是2017年的thinkpad x1carobon筆記本,外界顯卡塢帶titan xp顯卡。

我的cpu是i7-7600,已經過了幾年了,并不好,但說不定你比我的cpu更差,那么怎么辦哪?

你可以:

修改:workers==1

很多模型訓練的時候,默認的線程也就是workers==8,也許你的cpu無法承受8線程同時訓練,那么你可以把這個并行線程數降下來,例如我上面的,將線程數降為1,那么又可以愉快的玩耍了,但是,你能承受本來我有i7的cpu,本來我有12g的顯存,卻不能完全使用,還要承受八倍奉還么!!

3 一個隱藏的設置

這個發現,我尚未在其他csdn的博客上見到過,或者我沒搜到。

應該有很多像我一樣的偏執狂。天天盯著存儲看,c盤沒多一點點,就開始刪除垃圾,刪除緩存,刪除windows更新備份,刪除windows注銷文件(2個g),刪除windows系統補丁,刪除c盤之外其他盤的虛擬內存,后者把虛擬內存轉移到其他盤!因為,我們的c盤真的不堪重負。。。

后面有時間,我再談談如何給c盤自由加容吧。

可能,就像我一樣,我舉個例子,我把項目放在了F盤,那么我把除c盤之外,其他盤的虛擬緩存給刪掉了,導致F盤的虛擬內存為0,也會出現這個問題。

那么,該怎么辦哪?

你可以:

修改:我的電腦——屬性——高級系統設置——設置——虛擬內存

為了跟我的顯存保持一致,我就把虛擬內存也設置為12g吧應該是1024x12.。

懶得修改了,一切OK!

總結

原文鏈接:https://blog.csdn.net/qq_42925267/article/details/113181982

欄目分類
最近更新