如何在Keras中使用TensorFlow后端指定其他GPU?

这个问题与如何让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.json文件中指定tensorflow作为后端之外,你还可以通过环境变量CUDA_VISIBLE_DEVICES来限制使用的GPU数量和/或使用特定的GPU(http://acceleware.com/blog/cudavisibledevices-masking-gpus)。在这里你可以指定使用哪个GPU。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注