系统信息: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的评论建议,我查看了此答案并运行了
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的一个错误吗?