【发布时间】:2020-03-18 03:32:16
【问题描述】:
我有两台机器,机器 1 有 GPU,机器 2 只有一个 CPU。 我想知道两台机器是否可以在TensorFlow中使用Multi-worker training,即分布式训练时,machine1使用GPU,machine2使用CPU。
Tensorflow 的版本是 2.1.0
【问题讨论】:
标签: tensorflow deep-learning distributed-computing tensorflow2.x
我有两台机器,机器 1 有 GPU,机器 2 只有一个 CPU。 我想知道两台机器是否可以在TensorFlow中使用Multi-worker training,即分布式训练时,machine1使用GPU,machine2使用CPU。
Tensorflow 的版本是 2.1.0
【问题讨论】:
标签: tensorflow deep-learning distributed-computing tensorflow2.x
您可以使用 Multi-worker 通过 TensorFlow 在多台机器上训练模型。默认情况下,TensorFlow 在您的系统 CPU 上训练模型,但如果您有 Nvidia GPU,则可以安装 CUDA,它允许您在 GPU 上训练模型。
【讨论】:
答案是否定的。 当我分发深度学习时,请遵循本教程:
https://www.tensorflow.org/tutorials/distribute/multi_worker_with_keras
发生了一些错误:
tensorflow.python.framework.errors_impl.InternalError: Collective Op CollectiveBcastSend: Broadcast(1) is assigned to device /job:worker/replica:0/task:0/device:GPU:0 with type GPU and group_key 1 但是该组的 CPU 类型为 [Op:CollectiveBcastSend]
在我通过代码设置 machine1 使用 CPU 后:
os.environ['CUDA_VISIBLE_DEVICES'] = '-1'
训练将使用两台机器的 CPU 成功运行。
【讨论】: