我使用Keras構建了一個基于CNN結構的自動編碼器模型,在完成訓練程序后,我的筆記本電腦有64GB記憶體,但我注意到至少1/3的記憶體仍然被占用,而GPU記憶體也是如此.我沒有找到一個釋放記憶體的好方法,我只能通過關閉Anaconda Prompt命令視窗和jupyter筆記本來釋放記憶體.我不確定是否有人有好的建議.謝謝!
uj5u.com熱心網友回復:
釋放RAM記憶體
要釋放RAM記憶體,只需按照注釋中@nuric的建議執行del變數.
釋放GPU記憶體
這比釋放RAM記憶體有點棘手.有些人會建議您使用以下代碼(假設您使用的是keras)
from keras import backend as K
K.clear_session()
但是,上述代碼并不適用于所有人. (即使你嘗試del Models,它仍然無法作業)
如果上述方法不適合您,請嘗試以下方法(您需要先安裝numba庫):
from numba import cuda
cuda.select_device(0)
cuda.close()
其背后的原因是:Tensorflow只是為GPU分配記憶體,而CUDA負責管理GPU記憶體.
如果在用K.clear_session()清除了所有圖形后,CUDA以某種方式拒絕釋放GPU記憶體,那么您可以使用cuda庫直接控制CUDA以清除GPU記憶體.
uj5u.com熱心網友回復:
參考 1 樓 的回復: 釋放RAM記憶體
要釋放RAM記憶體,只需按照注釋中@nuric的建議執行del變數.
釋放GPU記憶體
這比釋放RAM記憶體有點棘手.有些人會建議您使用以下代碼(假設您使用的是keras)
from keras import backend as K
K.clear_session()
但是,上述代碼并不適用于所有人. (即使你嘗試del Models,它仍然無法作業)
如果上述方法不適合您,請嘗試以下方法(您需要先安裝numba庫):
from numba import cuda
cuda.select_device(0)
cuda.close()
其背后的原因是:Tensorflow只是為GPU分配記憶體,而CUDA負責管理GPU記憶體.
如果在用K.clear_session()清除了所有圖形后,CUDA以某種方式拒絕釋放GPU記憶體,那么您可以使用cuda庫直接控制CUDA以清除GPU記憶體.
參考 1 樓 的回復: 釋放RAM記憶體
要釋放RAM記憶體,只需按照注釋中@nuric的建議執行del變數.
釋放GPU記憶體
這比釋放RAM記憶體有點棘手.有些人會建議您使用以下代碼(假設您使用的是keras)
from keras import backend as K
K.clear_session()
但是,上述代碼并不適用于所有人. (即使你嘗試del Models,它仍然無法作業)
如果上述方法不適合您,請嘗試以下方法(您需要先安裝numba庫):
from numba import cuda
cuda.select_device(0)
cuda.close()
其背后的原因是:Tensorflow只是為GPU分配記憶體,而CUDA負責管理GPU記憶體.
如果在用K.clear_session()清除了所有圖形后,CUDA以某種方式拒絕釋放GPU記憶體,那么您可以使用cuda庫直接控制CUDA以清除GPU記憶體.
方法2是可以釋放記憶體,但是也運行不了程式了?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/270298.html
標籤:其他技術討論專區
上一篇:服務器上跑PC游戲,可行嗎?
下一篇:CSDN問答《沖榜分獎金》活動上線:現金好禮等你來拿!