2017-05-05 7 views
3

私はTheanoバックエンドでkeras 1.1.0を使用しています。 GPUを使用するには、os.envornを次のように設定します。KerasとGPUの使用

os.environ['THEANO_FLAGS'] = "device=gpu0" 

ケラスをインポートする前に設定してください。ケラスをインポートすると、次のメッセージが表示されます。

Using gpu device 0: TITAN X (Pascal) (CNMeM is disabled, cuDNN 5105) 
/home/library_python/lib/python/Theano-0.8.2-py2.7.egg/theano/sandbox/cuda/__init__.py:600: UserWarning: Your cuDNN version is more recent than the one Theano officially supports. If you see any problems, try updating Theano or downgrading cuDNN to version 5. 
    warnings.warn(warn) 

私はデバイスを正しく設定していると思いました。

Fri May 5 13:05:33 2017 
+-----------------------------------------------------------------------------+ 
| NVIDIA-SMI 375.51     Driver Version: 375.51     | 
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. | 
|===============================+======================+======================| 
| 0 GeForce GT 730  On | 0000:01:00.0  N/A |     N/A | 
| 30% 38C P8 N/A/N/A |  56MiB/ 980MiB |  N/A  Default | 
+-------------------------------+----------------------+----------------------+ 
| 1 TITAN X (Pascal) On | 0000:02:00.0  Off |     N/A | 
| 36% 63C P2 87W/250W | 373MiB/12189MiB |  35%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 2 TITAN X (Pascal) On | 0000:03:00.0  Off |     N/A | 
| 23% 42C P8 18W/250W |  3MiB/12189MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 0     Not Supported           | 
| 1  1520 C /usr/bin/python        155MiB | 
| 1  14996 C python           215MiB | 
+-----------------------------------------------------------------------------+ 

それは私が唯一のGPUメモリの215メガバイトを使用しています言う:私はkerasでモデルを訓練するときしかし、NVIDIA-SMIは次のようなメッセージが表示されます。私は10GBほどの使用量を期待していました。私が間違っていることを教えてください。私のGPUデバイスの設定は正しいですか?予想通り今私は11.7Gメモリを使用しています

os.environ['THEANO_FLAGS'] = "device=gpu0,floatX=float32,lib.cnmem=1" 

答えて

0

問題はようTheano_flagを変更した後に解決されます。

+-----------------------------------------------------------------------------+ 
| NVIDIA-SMI 375.51     Driver Version: 375.51     | 
|-------------------------------+----------------------+----------------------+ 
| GPU Name  Persistence-M| Bus-Id  Disp.A | Volatile Uncorr. ECC | 
| Fan Temp Perf Pwr:Usage/Cap|   Memory-Usage | GPU-Util Compute M. | 
|===============================+======================+======================| 
| 0 GeForce GT 730  On | 0000:01:00.0  N/A |     N/A | 
| 30% 38C P8 N/A/N/A |  56MiB/ 980MiB |  N/A  Default | 
+-------------------------------+----------------------+----------------------+ 
| 1 TITAN X (Pascal) On | 0000:02:00.0  Off |     N/A | 
| 28% 47C P2 78W/250W | 11923MiB/12189MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 
| 2 TITAN X (Pascal) On | 0000:03:00.0  Off |     N/A | 
| 23% 42C P8 18W/250W |  3MiB/12189MiB |  0%  Default | 
+-------------------------------+----------------------+----------------------+ 

+-----------------------------------------------------------------------------+ 
| Processes:              GPU Memory | 
| GPU  PID Type Process name        Usage  | 
|=============================================================================| 
| 0     Not Supported           | 
| 1  1520 C /usr/bin/python        155MiB | 
| 1  15543 C python          11765MiB | 
+-----------------------------------------------------------------------------+ 
+0

cnmemを '0.95 'にクリップすることをお勧めします。 –

+0

実際、cnmem = 1が何をしているのか正確に聞かせてもらえますか? – ThePrincess

+1

これは基本的にGPUメモリをあらかじめ割り当てています。それは[観察された](https://datascience.stackexchange.com/questions/13381/how-does-the-cnmem-library-work-and-which-types-of-theano-models-does-it-speed) 'cnmem'を設定すると速度が向上します。しかし、あなたはGPUのすべてのメモリをブロックしたくないので、それを '0.95'でクリップするのがコンベンションです。 –

関連する問題