时间:2021-05-22
我使用Pytorch进行模型训练时发现真正模型本身对于显存的占用并不明显,但是对应的转换为tensorflow后(权重也进行了转换),发现Python-tensorflow在使用时默认吃掉所有显存,并且不手动终结程序的话显存并不释放(我有两个序贯的模型,前面一个跑完后并不释放占用显存)(https://github.com/tensorflow/tensorflow/issues/1727),这一点对于后续的工作有很大的影响。
后面发现python-tensorflow限制显存有两种方法:
1. 设置显卡的使用率
这种方法在学习和工作中比较好用,学习时可提高显卡使用效率,工作时可方便的获得GPU显存消耗极限,用以提供显卡购买时的参数,现将代码展示如下:
这里的0.1 表示使用显存总量的的10%
2. 设置显卡按需使用(这个本人并没有专门测试,只是从tensorflow论坛上获得)
gpu_options = tf.GPUOptions(allow_growth=True)sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))以上这篇解决Tensorflow占用GPU显存问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python在用GPU跑模型的时候最好开多进程,因为很明显这种任务就是计算密集型的。用进程池好管理,但是tensorflow默认情况会最大占用显存,尽管该任务并
在tensorflow中,默认指定占用所有的GPU,如需指定占用的GPU,可以在命令行中:exportCUDA_VISIBLE_DEVICES=1这样便是只占用
我使用的是tensorflow-gpu(1.2.1)和Theano(0.9.0),2个4G显存NvidiaQuadroM2000GPU。1.theano:Val
一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用。并且,一般我们
初步尝试Keras(基于Tensorflow后端)深度框架时,发现其对于GPU的使用比较神奇,默认竟然是全部占满显存,1080Ti跑个小分类问题,就一下子满了.