这与如何使Keras与Theano利用多个GPU有关,但不是使用多个GPU,我有兴趣指定特定模型训练或运行在哪个GPU上。
我的nvidia-smi
输出如下:
+------------------------------------------------------+
| NVIDIA-SMI 361.42 Driver Version: 361.42 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 Off | 0000:03:00.0 Off | 0 |
| N/A 38C P0 60W / 149W | 11354MiB / 11519MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K80 Off | 0000:04:00.0 Off | 0 |
| N/A 37C P0 71W / 149W | 224MiB / 11519MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 GeForce GTX 750 Ti Off | 0000:06:00.0 On | N/A |
| 40% 29C P8 1W / 38W | 120MiB / 2047MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
这个输出当然是在什么都没有运行的情况下。问题是我不确定在Keras如何指定哪个GPU上运行。当然,使用TensorFlow,我们可以只做with tf.device('/cpu:1'):
范例,但我不确定如何与Keras集成。
谢谢!
除了在keras中指定tensorflow
之外。json文件作为后端,您可以使用环境变量CUDA_VISIBLE_DEVICES (http://acceleware.com/blog/cudavisibledevices-masking-gpus)限制使用的GPU数量和/或使用特定的GPU。这里你可以指定使用哪个GPU
基本上有两个步骤,你必须遵循:
-
安装启用GPU的tensorflow版本。详见https://www.tensorflow.org/versions/r0.7/get_started/os_setup.html
-
Keras默认使用Theano作为后端。你需要把它改成tensorflow
vi ~/.keras/keras.json
文件内容:{"epsilon": 1e-07, "floatx": "float32", "backend": "theano"}
将"theano"改为"tensorflow"
事情是,你只需要安装gpu启用tensorflow版本。它会自动使用你配置的gpu。
查看cuda和tensorflowhttp的安装过程链接://www.nvidia.com/object/gpu-accelerated-applications-tensorflow-installation.html