keras如何指定運(yùn)行時(shí)顯卡及限制GPU用量
keras指定運(yùn)行時(shí)顯卡及限制GPU用量
keras在使用GPU的時(shí)候有個(gè)特點(diǎn),就是默認(rèn)全部占滿顯存。
這樣如果有多個(gè)模型都需要使用GPU跑的話,那么限制是很大的,而且對(duì)于GPU也是一種浪費(fèi)。
因此在使用keras時(shí)需要有意識(shí)的設(shè)置運(yùn)行時(shí)使用那塊顯卡,需要使用多少容量。
這方面的設(shè)置一般有三種情況:
- 1. 指定顯卡
- 2. 限制GPU用量
- 3. 即指定顯卡又限制GPU用量
查看GPU使用情況語(yǔ)句(linux)
# 1秒鐘刷新一次 watch -n 1 nvidia-smi
一、指定顯卡
import os os.environ["CUDA_VISIBLE_DEVICES"] = "2"
這里指定了使用編號(hào)為2的GPU,大家可以根據(jù)需要和實(shí)際情況來(lái)指定使用的GPU
二、限制GPU用量
1、設(shè)置使用GPU的百分比
import tensorflow as tf import keras.backend.tensorflow_backend as KTF #進(jìn)行配置,使用30%的GPU config = tf.ConfigProto() config.gpu_options.per_process_gpu_memory_fraction = 0.3 session = tf.Session(config=config) # 設(shè)置session KTF.set_session(session )
需要注意的是,雖然代碼或配置層面設(shè)置了對(duì)顯存占用百分比閾值,但在實(shí)際運(yùn)行中如果達(dá)到了這個(gè)閾值,程序有需要的話還是會(huì)突破這個(gè)閾值。
換而言之如果跑在一個(gè)大數(shù)據(jù)集上還是會(huì)用到更多的顯存。
以上的顯存限制僅僅為了在跑小數(shù)據(jù)集時(shí)避免對(duì)顯存的浪費(fèi)而已。
2、GPU按需使用
import tensorflow as tf import keras.backend.tensorflow_backend as KTF config = tf.ConfigProto() config.gpu_options.allow_growth=True #不全部占滿顯存, 按需分配 session = tf.Session(config=config) # 設(shè)置session KTF.set_session(sess)
三、指定GPU并且限制GPU用量
這個(gè)比較簡(jiǎn)單,就是講上面兩種情況連上即可。。。
import os import tensorflow as tf import keras.backend.tensorflow_backend as KTF # 指定第一塊GPU可用 os.environ["CUDA_VISIBLE_DEVICES"] = "0" config = tf.ConfigProto() config.gpu_options.allow_growth=True #不全部占滿顯存, 按需分配 sess = tf.Session(config=config) KTF.set_session(sess)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 操作sqlite數(shù)據(jù)庫(kù)的方法
sqlite的官網(wǎng) sqlite.org/index.html SQLite 作為一個(gè)SQL數(shù)據(jù)庫(kù)引擎,是由C語(yǔ)言實(shí)現(xiàn)的,又小又快,具有高可靠性且功能齊全。 作為嵌入式數(shù)據(jù)庫(kù),在移動(dòng)設(shè)備中使用非常廣泛且方便。本文講解如何使用python操作sqlite數(shù)據(jù)庫(kù)2021-06-06
django中的select_related和prefetch_related性能優(yōu)化分析
這篇文章主要介紹了django中的select_related和prefetch_related性能優(yōu)化分析,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
Python實(shí)現(xiàn)推送百度鏈接的示例代碼
有時(shí)為了提高搜索效率,也讓搜索引擎更容易發(fā)現(xiàn)自己的文章,我們需要將文章鏈接推送到百度站長(zhǎng)平臺(tái),起到快速收錄的目的。本文將主要介紹如何通過(guò)Python實(shí)現(xiàn)這一功能,需要的可以參考一下2021-12-12
Python下opencv庫(kù)的安裝過(guò)程及問(wèn)題匯總
本文主要內(nèi)容是python下opencv庫(kù)的安裝過(guò)程,涉及我在安裝時(shí)遇到的問(wèn)題,并且,將從網(wǎng)上搜集并試用的一些解決方案進(jìn)行了簡(jiǎn)單的匯總,感興趣的小伙伴們可以參考一下2021-06-06
Python psutil模塊簡(jiǎn)單使用實(shí)例
這篇文章主要介紹了Python psutil模塊簡(jiǎn)單使用實(shí)例,本文直接給出使用腳本,實(shí)現(xiàn)查看cpu的信息、查看內(nèi)存信息、查看系統(tǒng)啟動(dòng)時(shí)間、查看網(wǎng)卡信息等,需要的朋友可以參考下2015-04-04
python中Flask框架簡(jiǎn)單入門實(shí)例
這篇文章主要介紹了python中Flask框架簡(jiǎn)單入門實(shí)例,以一個(gè)hello程序簡(jiǎn)單分析了Flask框架的使用技巧,需要的朋友可以參考下2015-03-03
Python進(jìn)度條神器tqdm使用實(shí)例詳解
Python進(jìn)度條神器tqdm是一個(gè)快速、可擴(kuò)展的進(jìn)度條工具,可以輕松地為Python腳本添加進(jìn)度條。它可以在循環(huán)中自動(dòng)計(jì)算進(jìn)度,并在終端中顯示進(jìn)度條,讓用戶了解程序的運(yùn)行情況。tqdm還支持多線程和多進(jìn)程,并且可以自定義進(jìn)度條的樣式和顯示方式。2023-06-06
Python實(shí)現(xiàn)獲取命令行輸出結(jié)果的方法
這篇文章主要介紹了Python實(shí)現(xiàn)獲取命令行輸出結(jié)果的方法,涉及Python命令執(zhí)行及文件讀寫等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹(shù)的高效且可擴(kuò)展實(shí)現(xiàn)
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹(shù)的高效且可擴(kuò)展實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01

