2017-05-25 5 views
0

Pythonで書かれたスクリプトを実行し、Tensorflowを使用したいとします。サーバーが他の同僚と共有されている場合は、スクリプトのサーバーのGPUメモリの1/3を使用するように制限したいと考えています。Tensorflowは、そうでない場合でも、すべてのGPUを割り当てます。

それを達成するために、私は次の操作を行います

with tf.Graph().as_default(): gpu_options = tf.GPUOptions(allow_growth=True, per_process_gpu_memory_fraction=0.3) session_conf = tf.ConfigProto( allow_soft_placement=True, log_device-placement=False, gpu_options=gpu_options) with tf.Session(conf=session_conf) as sess: # some stuff

しかし、私はnvidia-smiコマンド経由でGPUのメモリ使用量をチェックするとき、それのすべてが割り当てられていることを述べています。サーバー上に2つのGPUがあり、私のスクリプトはそれらの両方を完全に割り当てるようです。私は間違って何をしていますか?

私が上に書いたのは、スクリプトの最初のコード行ではありません。私はまずいくつかのデータ処理を行います。しかし、私が最初にそれを置くと、それは変わらない。

答えて

0

部分的な答えの1つは、$CUDA_VISIBLE_DEVICES=0というスクリプトを呼び出す前に環境変数を設定することです。参照これを使用すると、指定したGPU-ID(この例ではGPU 0)その上の多くのため

への使用を制限することができCUDA visible devices

関連する問題