1. 程式人生 > 實用技巧 >叮~,你有一條新的面試邀請,請注意查收……

叮~,你有一條新的面試邀請,請注意查收……

更多python教程請到: 菜鳥教程www.piaodoo.com

人人影視www.sfkyty.com


預設情況下,TensorFlow 會對映程序可見的所有 GPU 的幾乎所有 GPU 記憶體(取決於 CUDA_VISIBLE_DEVICES)。通過減少記憶體碎片,可以更有效地使用裝置上相對寶貴的 GPU 記憶體資源。

在某些情況下,最理想的是程序只分配可用記憶體的一個子集,或者僅根據程序需要增加記憶體使用量。 TensorFlow 在 Session 上提供兩個 Config 選項來進行控制。

(1) : 自主申請所用的記憶體空間

第一個是 allow_growth 選項,它試圖根據執行時的需要來分配 GPU 記憶體:它剛開始分配很少的記憶體,隨著 Session 開始執行並需要更多 GPU 記憶體,我們會擴充套件 TensorFlow 程序所需的 GPU 記憶體區域。請注意,我們不會釋放記憶體,因為這可能導致出現更嚴重的記憶體碎片情況。要開啟此選項,請通過以下方式在 ConfigProto 中設定選項:

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, ...)

(2) 規定 可用最大記憶體佔單個GPU的總記憶體比例

第二個是 per_process_gpu_memory_fraction 選項,它可以決定每個可見 GPU 應分配到的記憶體佔總記憶體量的比例。例如,您可以通過以下方式指定 TensorFlow 僅分配每個 GPU 總記憶體的 40%:

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
session = tf.Session(config=config, ...)

如要真正限制 TensorFlow 程序可使用的 GPU 記憶體量,這非常實用。

以上這篇TensorFlow 視訊記憶體使用機制詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援菜鳥教程www.piaodoo.com。