系統信息:1.1.0,GPU,Windows,Python 3.5,代碼在ipython控制檯中運行。Tensorflow在使用tf.device('/ cpu:0')時分配GPU內存
我試圖運行兩個不同的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?
UPDATE:
爲在@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的缺陷嗎?
我冒昧地在一些文檔示例中聚合(並引用)各種答案(包括你的),請參閱stackoverflow.com/documentation/tensorflow/10621我希望你不介意。隨意編輯它。 – npf