Machine learning 如何在Keras中使用TensorFlow后端的其他GPU?
这与GPU有关,但不是使用多个GPU,我感兴趣的是指定特定模型在哪个GPU上训练或运行 我的Machine learning 如何在Keras中使用TensorFlow后端的其他GPU?,machine-learning,neural-network,tensorflow,deep-learning,keras,Machine Learning,Neural Network,Tensorflow,Deep Learning,Keras,这与GPU有关,但不是使用多个GPU,我感兴趣的是指定特定模型在哪个GPU上训练或运行 我的nvidia smi输出如下所示: +------------------------------------------------------+ | NVIDIA-SMI 361.42 Driver Version: 361.42 | |-------------------------
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,我们可以只使用tf.device('/cpu:1'):范例执行,但我不确定这将如何与Keras集成
谢谢 基本上有两个步骤,您必须遵循:
安装启用GPU的tensorflow版本。看到这个了吗
Keras默认使用Theano作为后端。您需要将其更改为tensorflow
vi~/.keras/keras.json
文件内容:{“epsilon”:1e-07,“floatx”:“float32”,“backend”:“theano”}
将“theano”改为“tensorflow”
问题是,您只需要安装支持gpu的tensorflow版本。它将自动使用您配置的gpu
有关cuda和tensorflow的安装过程,请参见此链接。此外,要在keras.json文件中指定tensorflow
作为后端,您可以使用环境变量cuda\u VISIBLE\u DEVICES()限制使用的GPU数量和/或使用特定的GPU。这里您可以指定使用哪个GPU。FYI,这里的FAQ没有说明tensorflow案例中的Keras API是否提供了此功能(尽管它为Theano后端提供了一种方法)。