tensorflow顯存管理


在運行上面的blog的Tensorflow小程序的時候程序我們會遇到一個問題,當然這個問題不影響我們實際的結果計算,但是會給同樣使用這台計算機的人帶來麻煩,程序會自動調用所有能調用到的資源,並且全占滿,在自己的PC上沒問題,但是在服務器上,問題就很大,因為一旦你運行程序,占滿顯存別人就不能再用了,解決方法是我們通常是給程序運行指定一塊GPU,然后限制其使用比例:

1 import tensorflow as tf  
2 import os  
3 os.environ["CUDA_VISIBLE_DEVICES"] = '0'   #指定第一塊GPU可用  
4 config = tf.ConfigProto()  
5 config.gpu_options.per_process_gpu_memory_fraction = 0.5  # 程序最多只能占用指定gpu50%的顯存  
6 sess = tf.Session(config = config) 

 

 

但是我們通常在程序開始之前並不知道需要多大的顯存,程序回去申請GPU的顯存的50%,比如一個8G的內存,被占用了2G,那么程序會申請4G的顯存(因為有足夠的剩余顯存),如果此時顯存被占用7G,那么程序會申請剩下的所有的1G的顯存。也許你的程序根本用不着這么多顯存,200M也許就夠了,這時候如果程序能按照需求去申請就好了,幸運的是,這樣的方法是存在的:

只需要加上一條語句就好,完整語句為:

1 import tensorflow as tf  
2 import os  
3 os.environ["CUDA_VISIBLE_DEVICES"] = '0'   #指定第一塊GPU可用  
4 config = tf.ConfigProto()  
5 config.gpu_options.per_process_gpu_memory_fraction = 0.5  # 程序最多只能占用指定gpu50%的顯存  
6 config.gpu_options.allow_growth = True      #程序按需申請內存  
7 sess = tf.Session(config = config)  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM