Tensorflow訓(xùn)練模型默認(rèn)占滿所有GPU的解決方案
Tensorflow訓(xùn)練模型默認(rèn)占滿所有GPU問題
在使用gpu服務(wù)器訓(xùn)練tensorflow模型時(shí),總是占滿顯存!
TensorFlow默認(rèn)的是占用所有GPU
因此我們需要手動(dòng)設(shè)置使用的GPU編號(hào)以及單個(gè)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號(hào)gpu(想使用其他編號(hào)GPU,對(duì)應(yīng)修改引號(hào)中的內(nèi)容即可) os.environ["CUDA_VISIBLE_DEVICES"]=‘0,1' # 使用0號(hào)GPU和1號(hào)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代表的含義就是每個(gè)GPU進(jìn)程中使用顯存的上限為該GPU總量的1/3
3.如果想要在程序運(yùn)行過程中連續(xù)查看GPU信息
可以在終端使用該 指令(執(zhí)行指令:watch -n 3 -d nvidia-smi # 每隔三秒輸出一次)(前提是設(shè)備中有合適的NVIDIA驅(qū)動(dòng))
解決tensorflow2.2把GPU顯存占滿
安裝了tensorflow-gpu后,運(yùn)行程序默認(rèn)是把GPU的內(nèi)存全部占滿的,有時(shí)我們不想全部占滿,可以這樣操作。
解決代碼
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è)置動(dòng)態(tài)分配GPU內(nèi)存 sess=tf.compat.v1.Session(config=config)
如圖:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python控制臺(tái)輸出俄羅斯方塊移動(dòng)和旋轉(zhuǎn)功能
這篇文章主要介紹了Python控制臺(tái)輸出俄羅斯方塊移動(dòng)和旋轉(zhuǎn)功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Python使用unittest進(jìn)行有效測試的示例詳解
這篇文章主要介紹了如何使用?unittest?來編寫和運(yùn)行單元測試,希望通過閱讀本文,大家能了解?unittest?的基本使用方法,以及如何使用?unittest?中的斷言方法和測試用例組織結(jié)構(gòu)2023-06-06
使用Python手工計(jì)算x的算數(shù)平方根,來自中國古人的數(shù)學(xué)智慧
本篇采用的計(jì)算方法既非二分法也非牛頓迭代法,而是把中國古代的手工計(jì)算平方根的方法轉(zhuǎn)成代碼來完成。代碼有點(diǎn)煩雜,算是拋磚引玉吧,期待高手們寫出更好的代碼來2021-09-09
基于Tensorflow讀取MNIST數(shù)據(jù)集時(shí)網(wǎng)絡(luò)超時(shí)的解決方式
這篇文章主要介紹了基于Tensorflow讀取MNIST數(shù)據(jù)集時(shí)網(wǎng)絡(luò)超時(shí)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
django使用django-apscheduler 實(shí)現(xiàn)定時(shí)任務(wù)的例子
今天小編就為大家分享一篇django使用django-apscheduler 實(shí)現(xiàn)定時(shí)任務(wù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python交換字典鍵值對(duì)的四種方法實(shí)例
字典中有成對(duì)出現(xiàn)的鍵和值,但是字典中的鍵值對(duì)不是都能修改的,只有值才能修改,下面這篇文章主要給大家介紹了關(guān)于Python交換字典鍵值對(duì)的四種方法,需要的朋友可以參考下2022-12-12

