【发布时间】:2017-11-14 00:09:06
【问题描述】:
系统信息:1.1.0、GPU、Windows、Python 3.5,代码在 ipython 控制台中运行。
我正在尝试运行两个不同的 Tensorflow 会话,一个在 GPU 上(执行一些批处理工作),一个在我用于快速测试的 CPU 上,而另一个在运行。
问题在于,当我生成指定 with tf.device('/cpu:0') 的第二个会话时,该会话尝试分配 GPU 内存并导致我的另一个会话崩溃。
我的代码:
import os
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import time
import tensorflow as tf
with tf.device('/cpu:0'):
with tf.Session() as sess:
# Here 6 GBs of GPU RAM are allocated.
time.sleep(5)
如何强制 Tensorflow 忽略 GPU?
更新:
根据@Nicolas 的评论建议,我看了at this answer 并跑了
import os
os.environ["CUDA_VISIBLE_DEVICES"] = ""
import tensorflow as tf
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
哪个打印:
[name: "/cpu:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 2215045474989189346
, name: "/gpu:0"
device_type: "GPU"
memory_limit: 6787871540
locality {
bus_id: 1
}
incarnation: 13663872143510826785
physical_device_desc: "device: 0, name: GeForce GTX 1080, pci bus id: 0000:02:00.0"
]
在我看来,即使我明确告诉脚本忽略任何 CUDA 设备,它仍然会找到并使用它们。这可能是 TF 1.1 的错误吗?
【问题讨论】:
标签: python tensorflow