tensorflow視訊記憶體管理

2022-05-17 13:52:17 字數 1150 閱讀 7024

在執行上面的blog的tensorflow小程式的時候程式我們會遇到乙個問題,當然這個問題不影響我們實際的結果計算,但是會給同樣使用這台計算機的人帶來麻煩,程式會自動呼叫所有能呼叫到的資源,並且全占滿,在自己的pc上沒問題,但是在伺服器上,問題就很大,因為一旦你執行程式,佔滿視訊記憶體別人就不能再用了,解決方法是我們通常是給程式執行指定一塊gpu,然後限制其使用比例:

1

import

tensorflow as tf

2import

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

2import

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)

tensorflow設定視訊記憶體自適應和視訊記憶體比例

用慣了theano.再用tensoflow發現一執行視訊記憶體就滿載了,嚇得我吃了乙個蘋果。用 搜尋引擎毛都搜不到,於是翻牆找了下問題的解決方法,原來有兩種 1.按比例 config tf.configproto config.gpu options.per process gpu memory f...

Tensorflow設定視訊記憶體自適應,視訊記憶體比例

用慣了theano.再用tensoflow發現一執行視訊記憶體就滿載了,嚇得我吃了乙個蘋果。用 搜尋引擎毛都搜不到,於是翻牆找了下問題的解決方法,原來有兩種 1.按比例 config tf.configproto config.gpu options.per process gpu memory f...

Tensorflow 設定視訊記憶體自適應,視訊記憶體比例

用慣了theano.再用tensoflow發現一執行視訊記憶體就滿載了,嚇得我吃了乙個蘋果。用 搜尋引擎毛都搜不到,於是fq找了下問題的解決方法,原來有兩種 config tf.configproto config.gpu options.per process gpu memory fractio...