Ubuntu 14.04.4 LTS x64を実行しているサーバーにTensorFlow-GPU 1.0.0をインストールしました。TensorFlow-GPUにコマンドラインからCPUを使用させる
CUDA_VISIBLE_DEVICES
を使用して、1つまたは複数のGPUを非表示にすることができます。場合によっては、TensorFlowベースのプログラムがCPUのみを使用するように、すべてのGPUを非表示にしたいと思うことがあります。その結果、私は
[email protected]:/scratch/coding/src$ CUDA_VISIBLE_DEVICES="" python my_script.py
を試みたが、これは私のエラーメッセージを表示します。ここでは
E tensorflow/stream_executor/cuda/cuda_driver.cc:509] failed call to cuInit: CUDA_ERROR_NO_DEVICE
は、私が使用ConfigProto
次のとおりです。
session_conf = tf.ConfigProto(
device_count={'CPU': 1, 'GPU': 1},
allow_soft_placement=True,
log_device_placement=False
)
sess = tf.Session(config=session_conf)
私は防ぐためにdevice_count={'GPU': 0}
を使用することができます知っていますTensorFlowベースのプログラムはGPUを使用していませんが、プログラムを起動するときにコマンドラインからこれを実現できるかどうかは疑問です。ConfigProto
)。
ドキュメントに従って、allow_soft_placement=True
オプションは、指定されたものが存在しない場合に操作を実行するためにTensorFlowに自動的に既存のサポートされているデバイスを選択させるものとします。
私がメッセージを見たときの最初の反応は、マシンがGPUを持っていなくても、CUDAには1つのGPUが必要ですが、readはGPUドライバをインストールしてTensorFlow-GPUをマシンに使用できるということでした。ここで
は、私がテストに使用my_script.py
スクリプトです:
import tensorflow as tf
a = tf.constant(1, name = 'a')
b = tf.constant(3, name = 'b')
c = tf.constant(9, name = 'c')
d = tf.add(a, b, name='d')
e = tf.add(d, c, name='e')
session_conf = tf.ConfigProto(
device_count={'CPU': 1, 'GPU': 1},
allow_soft_placement=True,
log_device_placement=False
)
sess = tf.Session(config=session_conf)
print(sess.run([d, e]))
私は本当にエラーメッセージよりも警告だと思っています。私はいつもそれを見ています。 –
@ YaroslavBulatovありがとう –
@ YaroslavBulatovところで、あなたはあなたのコメントを答えに変換することを歓迎しています:Stack Exchangeの質問0 upvoteと0の答えは自動的に削除されるかもしれません。 –