システム情報:1.1.0、GPU、Windows、Python 3.5、コードはipythonコンソールで動作します。tf.device( '/ cpu:0')を使用する場合のTensorflowの割り当て
私は2つの異なるTensorflowセッションを実行しようとしています.1つはGPU(いくつかのバッチ作業を行います)ともう1つはクイックテストに使用するCPUです。
問題は、with tf.device('/cpu:0')
を指定して2番目のセッションを生成すると、セッションが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)
どのように私はGPUを無視するTensorflowを強制できますか?
@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())
を実行しました:UPDATE
[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