您好,登錄后才能下訂單哦!
這篇文章主要介紹TensorFlow顯存使用機制的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
默認情況下,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顯存使用機制的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。