【发布时间】:2018-06-03 06:54:41
【问题描述】:
我有多个 GPU,但我只想使用一个 GPU 进行训练。我正在使用以下选项:
config = tf.ConfigProto(allow_soft_placement=True, log_device_placement=True)
config.gpu_options.allow_growth = True
with tf.Session(config=config) as sess:
尽管设置/使用了所有这些选项,我所有的 GPU 都会分配内存和
#processes = #GPUs
如何防止这种情况发生?
注意
- 我不想手动设置设备,也不想设置
CUDA_VISIBLE_DEVICES,因为我希望 tensorflow 自动找到可用的最佳(空闲)GPU - 当我尝试启动另一个
run时,它使用的 GPU 已被另一个 tensorflow 进程使用,即使还有其他几个空闲 GPU(除了它们上的内存分配) - 我在 docker 容器中运行 tensorflow:
tensorflow/tensorflow:latest-devel-gpu-py
【问题讨论】:
-
看起来很奇怪。能否请您尝试发布完整代码和您正在使用的 TF 版本?
-
您是否尝试指定初始内存分数?
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.333) sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))stackoverflow.com/questions/34199233/… -
完整的代码超过5个脚本,所以我不能给你看完整的代码,很遗憾,但我想我的意思说清楚了?或者你有什么特别想看的吗?我已经添加了我正在开发的 tensorflow 版本。 @MatanHugi
-
不,我没有,但我相信这不会帮助我解决我的问题。 @yauheni_selivonchyk
-
Tensorflow 没有找到可用的野兽(空闲)GPU 的逻辑。
标签: tensorflow deep-learning gpu nvidia