Tensorflow默认占满全部GPU的全部资源

Posted weiyinfu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow默认占满全部GPU的全部资源相关的知识,希望对你有一定的参考价值。

一台服务器上装了多块GPU,默认情况下启动一个深度学习训练任务时,这个任务会占满每一块GPU的几乎全部存储空间。这就导致一个服务器基本上只能执行一个任务,而实际上任务可能并不需要如此多的资源,这相当于一种资源浪费。

针对这个问题,有如下解决方案。

一、直接设置可见GPU

写一个脚本,设置环境变量

export CUDA_VISIBLE_DEVICES=0
python model.py

二、设置每个GPU的存储上限

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333)

sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))

三、增量使用GPU存储

config = tf.ConfigProto()
config.gpu_options.allow_growth=True
sess = tf.Session(config=config)

以上是关于Tensorflow默认占满全部GPU的全部资源的主要内容,如果未能解决你的问题,请参考以下文章

如何防止 Tensorflow 在使用 Eager Execution 时分配全部 GPU 内存?

安装Tensorflow-gpu

tensorflow-gpu 使用的常见错误

TensorFlow 设置GPU使用量

Jupyter notebook Tensorflow GPU Memory 释放

tensorflow显存管理