这篇文章主要介绍了如何运行tensorflow python程序和限制对GPU和CPU的占用操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用。并且,一般我们的程序也用不了所有的GPU资源,只是强行霸占着,大部分资源都不会用到,也不会提升运行速度。
使用nvidia-smi可以查看本机的GPU使用情况,如下图,这里可以看出,本机的GPU型号是K80,共有两个K80,四块可用(一个K80包括两块K40)。
1、如果是只需要用某一块或某几块GPU,可以在运行程序时,利用如下命令运行:CUDA_VISIBLE_DEVICES=0,1 python test.py
这里表示只有GPU 0和1对程序可见,因此也就限制了程序只能用GPU 0和1
同样,也可以在代码里指定
import os os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
如果想只用CPU,不用CPU来运行程序,可以用如下命令(所有GPU都不可见):
CUDA_VISIBLE_DEVICES='' python test.py
或者是
CUDA_VISIBLE_DEVICES="-1" python test.py
2、让tensorflow只按需索取显存,如下代码所示
#only minimum use gpu gpu_config = tf.ConfigProto() gpu_config.gpu_options.allow_growth = True with tf.Session(config = gpu_config) as sess:
前面是对GPU的限制,那如果不用GPU,只用CPU呢?如何限制对CPU的使用呢?
前面也有提到,如果使用命令CUDA_VISIBLE_DEVICES=“”python test.py可以只使用CPU,那如果想只使用部分CPU呢?可以通过如下代码限制
cpu_config = tf.ConfigProto(intra_op_parallelism_threads = 8, inter_op_parallelism_threads = 8, device_count = {'CPU': 8}) with tf.Session(config = cpu_config) as sess:
感谢你能够认真阅读完这篇文章,希望小编分享的“如何运行tensorflow python程序和限制对GPU和CPU的占用操作”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。