gpt4 book ai didi

python - 如何使用多个 GPU 和 Keras 来训练 GAN?

转载 作者:行者123 更新时间:2023-12-02 08:33:10 24 4
gpt4 key购买 nike

存在三个主要挑战:a) 你如何 save and load the optimizer state 、b) 如何将多个 GPU 与嵌套模型结合使用(见下文),以及 c) 如何创建工作流程来优化 GPU 和 CPU 利用率?

上下文

我们有三个组成部分:

  1. 鉴别器
  2. 生成器,以及
  3. 同时具有判别器和生成器的 GAN。

优化器状态

由于判别器包含在 GAN 中,并且在训练期间也需要单独使用 - 如何保存和加载 GAN?现在,我分别保存生成器和鉴别器,并为每个训练集重新编译 GAN,但这样我会丢失优化器状态。

多个 GPU

API 如下所示:

from keras.utils import multi_gpu_model
parallel_model = multi_gpu_model(model, gpus=8)

这里的挑战与优化器相同。由于判别器包含在 GAN 中,因此您无法将 multi_gpu_model 同时应用于判别器和 GAN。在创建 GAN 之前,您可以将 multi_gpu_model 添加到判别器和生成器,但根据我的经验,它不能很好地扩展并导致 GPU 利用率不佳。

GPU 和 CPU 利用率

可以使用多重处理对数据进行预处理和排队。由于 multi_gpu_model API 不支持 GAN,因此您需要频繁合并权重并在 CPU 和 GPU 之间进行跳跃。因此,我还没有找到一种干净的方法来利用 GPU 和 CPU。

最佳答案

multi_gpu_model 可用于生成器、判别器和 gan 的每个函数

def create_generator():
#network architecture
generator = Model(inputs=input, outputs=output)
generator = multi_gpu_model(generator, gpus=2)
generator.compile()
return generator

对于判别器和 gan 也可以做同样的事情。

关于python - 如何使用多个 GPU 和 Keras 来训练 GAN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52463551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com