Tensorflow 如何使用多个 GPU 进行单独训练?

Posted

技术标签:

【中文标题】Tensorflow 如何使用多个 GPU 进行单独训练?【英文标题】:How to use multiple GPUs for separate training with Tensorflow? 【发布时间】:2021-04-24 12:09:40 【问题描述】:

我浏览了许多关于在 TensorFlow 中使用多个 GPU 的文章和帖子。它在“如何使用并行 GPU 训练 NN(神经网络)”方面帮助了我更多 here。但我有一个不同的问题。可以使用单独的 GPU 同时训练不同的神经网络吗?

更多细节:

我有神经网络 ABGPU1GPU2。我想同时在GPU1B NN 上训练A NN GPU2。有可能吗?

【问题讨论】:

您可以同时分别运行两个脚本。只需在每个脚本中更改 cuda 可见设备即可。 这能回答你的问题吗? How do I select which GPU to run a job on? 【参考方案1】:

我建议使用两个单独的 Python 脚本来训练这两个网络,例如 trainA.pytrainB.py

trainA.py 的前两行中,您选择您喜欢的 GPU。

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"

对于trainB.py,您选择另一个 GPU:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"

现在您应该可以同时运行两个训练脚本了。

【讨论】:

以上是关于Tensorflow 如何使用多个 GPU 进行单独训练?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Tensorflow 2.0 + Keras 中进行并行 GPU 推理?

Tensorflow 会自动使用多个 CPU 吗?

具有推理功能的 TensorFlow + Keras 多 GPU 模型

如何使用 tensorflow 在 keras 中禁用 GPU?

如何使用 TensorFlow GPU?

科研分享如何切换GPU以及如何在Tensorflow实验中节约GPU资源