如何实现Keras在多GPU上并行运行的案例分享?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1323个文字,预计阅读时间需要6分钟。
一、多张GPU的卡上使用Keras,当有多张GPU卡时,推荐使用TensorFlow作为后端。使用多张GPU运行model,可以分为两种情况,一是数据并行,二是设备并行。
二、数据并行:数据并行将模型复制到多个GPU上,每个GPU处理一部分数据。数据并行将目标模型在‘上分割成多个副本,每个副本运行在不同的GPU上。
一、多张gpu的卡上使用keras
有多张gpu卡时,推荐使用tensorflow 作为后端。使用多张gpu运行model,可以分为两种情况,一是数据并行,二是设备并行。
二、数据并行
数据并行将目标模型在多个设备上各复制一份,并使用每个设备上的复制品处理整个数据集的不同部分数据。
利用multi_gpu_model实现
keras.utils.multi_gpu_model(model, gpus=None, cpu_merge=True, cpu_relocation=False)
具体来说,该功能实现了单机多 GPU 数据并行性。 它的工作原理如下:
将模型的输入分成多个子批次。
在每个子批次上应用模型副本。 每个模型副本都在专用 GPU 上执行。
将结果(在 CPU 上)连接成一个大批量。
例如, 如果你的 batch_size 是 64,且你使用 gpus=2, 那么我们将把输入分为两个 32 个样本的子批次, 在 1 个 GPU 上处理 1 个子批次,然后返回完整批次的 64 个处理过的样本。
本文共计1323个文字,预计阅读时间需要6分钟。
一、多张GPU的卡上使用Keras,当有多张GPU卡时,推荐使用TensorFlow作为后端。使用多张GPU运行model,可以分为两种情况,一是数据并行,二是设备并行。
二、数据并行:数据并行将模型复制到多个GPU上,每个GPU处理一部分数据。数据并行将目标模型在‘上分割成多个副本,每个副本运行在不同的GPU上。
一、多张gpu的卡上使用keras
有多张gpu卡时,推荐使用tensorflow 作为后端。使用多张gpu运行model,可以分为两种情况,一是数据并行,二是设备并行。
二、数据并行
数据并行将目标模型在多个设备上各复制一份,并使用每个设备上的复制品处理整个数据集的不同部分数据。
利用multi_gpu_model实现
keras.utils.multi_gpu_model(model, gpus=None, cpu_merge=True, cpu_relocation=False)
具体来说,该功能实现了单机多 GPU 数据并行性。 它的工作原理如下:
将模型的输入分成多个子批次。
在每个子批次上应用模型副本。 每个模型副本都在专用 GPU 上执行。
将结果(在 CPU 上)连接成一个大批量。
例如, 如果你的 batch_size 是 64,且你使用 gpus=2, 那么我们将把输入分为两个 32 个样本的子批次, 在 1 个 GPU 上处理 1 个子批次,然后返回完整批次的 64 个处理过的样本。

