Tensorflow訓(xùn)練模型默認(rèn)占滿所有GPU的解決方案
Tensorflow訓(xùn)練模型默認(rèn)占滿所有GPU問題
在使用gpu服務(wù)器訓(xùn)練tensorflow模型時,總是占滿顯存!
TensorFlow默認(rèn)的是占用所有GPU
因此我們需要手動設(shè)置使用的GPU編號以及單個GPU顯存占用比例
1.第一步需要在代碼中開頭加入
import os os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # 按照PCI_BUS_ID順序從0開始排列GPU設(shè)備 os.environ["CUDA_VISIBLE_DEVICES"]=‘0' ?# 使用0號gpu(想使用其他編號GPU,對應(yīng)修改引號中的內(nèi)容即可) os.environ["CUDA_VISIBLE_DEVICES"]=‘0,1' # 使用0號GPU和1號GPU
2.第二步需要將代碼中的sess = tf.Session()改為
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333) # 通過改變0.333可以改變占用顯存比例 sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
per_process_gpu_memory_fraction=0.333代表的含義就是每個GPU進(jìn)程中使用顯存的上限為該GPU總量的1/3
3.如果想要在程序運行過程中連續(xù)查看GPU信息
可以在終端使用該 指令(執(zhí)行指令:watch -n 3 -d nvidia-smi # 每隔三秒輸出一次)(前提是設(shè)備中有合適的NVIDIA驅(qū)動)
解決tensorflow2.2把GPU顯存占滿
安裝了tensorflow-gpu后,運行程序默認(rèn)是把GPU的內(nèi)存全部占滿的,有時我們不想全部占滿,可以這樣操作。
解決代碼
import tensorflow as tf import os os.environ['CUDA_VISIBLE_DEVICES']="0" # 指定哪塊GPU訓(xùn)練 config=tf.compat.v1.ConfigProto() # 設(shè)置最大占有GPU不超過顯存的80%(可選) # config.gpu_options.per_process_gpu_memory_fraction=0.8 config.gpu_options.allow_growth = True # 設(shè)置動態(tài)分配GPU內(nèi)存 sess=tf.compat.v1.Session(config=config)
如圖:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用urllib模塊對URL網(wǎng)址中的中文編碼與解碼實例詳解
這篇文章主要介紹了Python使用urllib模塊對URL網(wǎng)址中的中文編碼與解碼(Python使用urllib模塊對URL編碼與解碼)實例詳解,需要的朋友可以參考下2020-02-02使用python如何將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集
這篇文章主要介紹了使用python如何將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09解決Opencv+Python cv2.imshow閃退問題
這篇文章主要介紹了解決Opencv+Python cv2.imshow閃退問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Matplotlib可視化之添加讓統(tǒng)計圖變得簡單易懂的注釋
今天給大家?guī)淼奈恼率顷P(guān)于Python的,文章圍繞著Python Matplotlib可視化展開,文中非常詳細(xì)的介紹了如何給統(tǒng)計圖添加注釋,需要的朋友可以參考下2021-06-06python pickle存儲、讀取大數(shù)據(jù)量列表、字典數(shù)據(jù)的方法
pickle模塊實現(xiàn)了用于序列化和反序列化python對象結(jié)構(gòu)的二進(jìn)制協(xié)議。這篇文章主要介紹了python pickle存儲、讀取大數(shù)據(jù)量列表、字典的數(shù)據(jù),需要的朋友可以參考下2019-07-07Python中跳臺階、變態(tài)跳臺階與矩形覆蓋問題的解決方法
這篇文章主要給大家介紹了關(guān)于Python中跳臺階、變態(tài)跳臺階與矩形覆蓋問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05Python?matplotlib實戰(zhàn)之氣泡圖繪制
氣泡圖是一種多變量的統(tǒng)計圖表,可以看作是散點圖的變形,這篇文章主要為大家介紹了如何使用Matplotlib繪制氣泡圖,需要的小伙伴可以參考下2023-08-08